Cuando se usa un AppBarLayout
widget en la biblioteca de soporte de diseño, aparece una sombra en la parte inferior de la barra de herramientas. ¿Cómo puedo eliminar esa sombra?
android
android-layout
Abdul Rehman
fuente
fuente
setOutlineProvider
este problema solo ocurre cuando la versión de api> = 21, si no desea cambiar la elevación, puede usar:
recuerde verificar la versión de api
EDITAR:
Blow es el código fuente de
setOutlineProvider
.Se dice que
If the ViewOutlineProvider is null, if querying it for an outline returns false, or if the produced Outline is {@link Outline#isEmpty()}, shadows will not be cast.
Por lo tanto, si desea eliminar la sombra, será mejor que use este método en lugar de configurar
app:elevation
. Parece que cambiar la elevación para eliminar la sombra es una especie de efecto secundario. Y cambiar la elevación puede causar otros problemas en algunos casos.fuente
Para todos aquellos que no quieran usar
bringToFront()
yelevation="0dp"
hace desaparecer la barra de herramientas:app:elevation="0dp"
combinado conandroid:translationZ="0.1dp"
funcionó para mí.fuente
Con las últimas versiones de appcompat, la configuración de trucos
app:elevation="0.1dp"
en xml ya no funciona.Hasta ahora he encontrado dos soluciones.
En lugar de configurar
app:elevation
, intente usar un stateListAnimator. Por ejemplo, en código:Una forma más fácil es seguir configurando
app:elevation="0dp"
xml como de costumbre, pero en el código:El crédito va a estas dos discusiones:
ToolBar desaparece al configurar la elevación para AppBarLayout
cuando se establece la aplicación: elevación = "0dp", el menú de hamburguesas no se muestra en la barra de herramientas
fuente
Utilice
android:stateListAnimator="@null"
. Sin efectos secundarios.fuente
Lo intenté,
app:elevation="0dp"
pero la barra de herramientas desapareció, pero el usoapp:elevation="0.1dp"
hizo el truco.Espero que esto ayude a alguien más.
fuente
v25.0.0
.Agregue la aplicación: elevación = "0dp" en su AppBarLayout. como este ejemplo
fuente
Programáticamente puede usar esto: getSupportActionBar (). SetElevation (0.0f);
fuente
Esta es la forma que se me ocurrió
app:elevation="0dp"
para eliminar la sombra. Funciona perfectamente.fuente