Как добавить тень в нижний лист?

На данный момент, когда официальный компонент нижнего листа из библиотеки дизайна Android реализован, верхний край не показывает тень. Но для того, что я видел в различных макетах и ​​спецификациях Material Design, нижний лист содержит отдельную тень.

Я думаю, что тень поможет удаленному нижнему листу от основного макета, особенно если есть значение заглядывания и / или нижний лист всегда виден. В противном случае он просто будет сочетаться с основным макетом и его элементами.

Я пробовал и ViewCompat.setElevation(bottomSheet, 5); И установка android:elevation="5dp" на представление в XML, без успеха.

Пример нижнего листа из спецификации материала

Solutions Collecting From Web of "Как добавить тень в нижний лист?"

Я знаю, что теневая форма не имеет такого же внешнего вида, как высота, но, по крайней мере, дайте ей попробовать. Хитрость заключается в том, чтобы использовать app:layout_anchor чтобы app:layout_anchor тень на нижнем листе.

activity_main.xml

 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <MapView android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" /> <View android:id="@+id/shadow" android:layout_width="match_parent" android:layout_height="16dp" android:background="@drawable/shape_gradient_top_shadow" app:layout_anchor="@id/bottom_sheet" /> <FrameLayout android:id="@+id/bottom_sheet" android:layout_width="match_parent" android:layout_height="200dp" android:clipToPadding="false" app:layout_behavior="android.support.design.widget.BottomSheetBehavior" /> </android.support.design.widget.CoordinatorLayout> 

shape_gradient_top_shadow.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="90" android:endColor="@android:color/transparent" android:startColor="#64000000"/> </shape> 

Выглядит так:

Тень нижнего листа

Для уровня API 21 и выше установите в родительском представлении следующее. Вы также можете попробовать в корневом каталоге нижнего листа (я не пробовал его в корневом представлении)

 android:background="@android:color/white" android:elevation="16dp" 

Если фон не может использоваться

 android:outlineProvider="bounds" 

Например, у меня есть мой лист внутри вложенного представления прокрутки

 <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:clipToPadding="false" app:layout_behavior="android.support.design.widget.BottomSheetBehavior" android:elevation="16dp" android:outlineProvider="bounds" > <include layout="@layout/bottomsheet_1" /> </android.support.v4.widget.NestedScrollView>