Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo puedo agregar una sombra a la vista inferior de la hoja?

A partir de ahora, con el componente de hoja inferior oficial de la biblioteca de diseño de Android implementado el borde superior no muestra una sombra. Pero por lo que he visto en varias maquetas y en las especificaciones de Material Design, la hoja inferior incluye una discreta sombra de algún tipo.

Creo que la sombra ayudará a distanciar la hoja inferior de la disposición principal, especialmente si hay un conjunto de valores de mirador y / o la hoja inferior siempre está visible. De lo contrario sólo se mezclan con el diseño principal y sus elementos.

He intentado tanto ViewCompat.setElevation(bottomSheet, 5); Y establecer android:elevation="5dp" a la vista en el XML, sin éxito.

Ejemplo de hoja inferior de las especificaciones de Material Design

  • Hoja de fondo con movimiento Botones de acción flotante
  • BottomSheetBehaviour setstate sin animación
  • BottomSheetDialog permanece oculto después de descartar arrastrando hacia abajo
  • BottomSheetDialogFragment - Cómo configurar la altura expandida (o el desplazamiento de la parte superior del min)
  • BottomSheetBehavior no funciona cuando la biblioteca de diseño se actualiza a 24.2.0
  • La elevación no funciona para BottomSheet dentro de la disposición del coordinador
  • ¿Cómo manejar los problemas de la nueva hoja inferior de la biblioteca de soporte / diseño?
  • Actualizar los contenidos de recyclerview fallan en la hoja inferior
  • 2 Solutions collect form web for “¿Cómo puedo agregar una sombra a la vista inferior de la hoja?”

    Sé que una forma de la sombra no tiene el mismo aspecto que una elevación – pero por lo menos intentarlo. El truco es usar app:layout_anchor para recortar la sombra en la hoja inferior.

    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> 

    Se ve como esto:

    Sombra de hoja inferior

    Para API de nivel 21 y superior, establezca lo siguiente en la vista principal. También puede probar en la vista raíz de la hoja de cálculo (no lo he probado en la vista raíz)

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

    Si no hay antecedentes, puede utilizar

     android:outlineProvider="bounds" 

    Por ejemplo, tengo mi hoja dentro de una vista de desplazamiento anidada

     <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> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.