Відображення висоти з Cardview в попередньому перегляді в Android Studio, але не в пристрої

Я намагався зробити ефект тіні з Cardview, і він показує ефект тіні в xml Preview, але немає ефекту тіні на фізичному пристрої

Recycler View on Device which is not showing any Cardview Effect

Preview on Android Studio which is showing the shadow effect

Ось код для елемента даних даних перегляду відновлювача XML.

<?xml version="1.0" encoding="utf-8"?>




    

        

        

        

    


0

8 Відповіді

Це відбувається тому, що ваш RecyclerView розміщує ваші карти безпосередньо поруч один з одним, не залишаючи місця для системи, щоб намалювати тінь. Ви можете побачити крихітну тінь у верхньому і нижньому кутах карт (тому що закруглений кут залишає дуже невелику кількість простору, щоб система могла залучити тінь).

Щоб залишити простір для тіні, вам слід додати ItemDecoration до вашого RecyclerView , який встановлює зміщення кожної карти.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    RecyclerView recycler = (RecyclerView) findViewById(R.id.recycler);
    recycler.addItemDecoration(new MyItemDecoration(this));
    ...
}

private static class MyItemDecoration extends RecyclerView.ItemDecoration {

    private final int offset;

    public MyItemDecoration(Context context) {
        this.offset = context.getResources().getDimensionPixelSize(R.dimen.card_offset);
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        outRect.set(offset, offset, offset, offset);
    }
}

І визначте зміщення, яке ви хочете, як dimen ресурс, наприклад:


    3dp

Без ItemDecoration :

enter image description here

За допомогою ItemDecoration :

enter image description here

1
додано

Це відбувається тому, що ваш RecyclerView розміщує ваші карти безпосередньо поруч один з одним, не залишаючи місця для системи, щоб намалювати тінь. Ви можете побачити крихітну тінь у верхньому і нижньому кутах карт (тому що закруглений кут залишає дуже невелику кількість простору, щоб система могла залучити тінь).

Щоб залишити простір для тіні, вам слід додати ItemDecoration до вашого RecyclerView , який встановлює зміщення кожної карти.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    RecyclerView recycler = (RecyclerView) findViewById(R.id.recycler);
    recycler.addItemDecoration(new MyItemDecoration(this));
    ...
}

private static class MyItemDecoration extends RecyclerView.ItemDecoration {

    private final int offset;

    public MyItemDecoration(Context context) {
        this.offset = context.getResources().getDimensionPixelSize(R.dimen.card_offset);
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        outRect.set(offset, offset, offset, offset);
    }
}

І визначте зміщення, яке ви хочете, як dimen ресурс, наприклад:


    3dp

Без ItemDecoration :

enter image description here

За допомогою ItemDecoration :

enter image description here

1
додано

try this use app:cardElevation and app:cardUseCompatPadding like this if required name splace than add this xmlns:app="http://schemas.android.com/apk/res-auto"

    
0
додано
Не працює
додано Автор Lakshya Punhani, джерело

try this use app:cardElevation and app:cardUseCompatPadding like this if required name splace than add this xmlns:app="http://schemas.android.com/apk/res-auto"

    
0
додано
Не працює
додано Автор Lakshya Punhani, джерело

Я думаю, ви тестуєте свою програму на пристрої Kitkat. Спробуйте перевірити свою програму на пристрої Lollipop або пізнішої версії.

0
додано

Я думаю, ви тестуєте свою програму на пристрої Kitkat. Спробуйте перевірити свою програму на пристрої Lollipop або пізнішої версії.

0
додано

Спробуйте використати: app: card_elevation = "2dp"

0
додано

Спробуйте використати: app: card_elevation = "2dp"

0
додано
android_jobs_ua
android_jobs_ua
120 учасників

Публикуем вакансии и запросы на поиск работы по направлению Android. Здесь всё: full-time, part-time, remote и разовые подработки.

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.