Barra de herramientas de sombra en la barra de estado de Lollipop

Estoy utilizando una plantilla de Android Studio que utiliza la AppCompat Toolbar . Desafortunadamente, la barra de herramientas arroja sombra en la barra de estado para que no se vea bien. También implemento un NavigationDrawer así que no puedo simplemente establecer el color de la barra de estado.

Así es como se ve:

Introduzca aquí la descripción de la imagen

Así es como debería ser:

Introduzca aquí la descripción de la imagen

Activity_main.xml

 <android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:openDrawer="start"> <include layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" /> </android.support.v4.widget.DrawerLayout> 

App_bar_main.xml

 <?xml version="1.0" encoding="utf-8"?> <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" android:fitsSystemWindows="true" tools:context="hu.pe.thinhhoang.aaosync.MainActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_main" /> </android.support.design.widget.CoordinatorLayout> 

Styles.xml (v21)

 <resources>> <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item> </style> </resources> 

Esta sombra es parte de windowContentOverlay en APIs debajo de LOLLIPOP (en LOLLIPOP es @null ).

Cuando se trabaja con el widget Barra de herramientas, la barra de herramientas no forma parte de la decoración de la ventana, por lo que la sombra comienza en la parte superior de la ventana sobre la barra de herramientas en lugar de debajo (por lo que desea que windowContentOverlay sea @null). Además, es necesario agregar una vista vacía adicional debajo de la barra de herramientas pre-LOLLIPOP con su fondo configurado a una sombra vertical 8dp tall gradient ( 8dp tall gradient de 8dp tall gradient de #20000000 a #00000000 funciona mejor). En LOLLIPOP puede set 8dp elevation en la barra de herramientas.

Ponga un LinearLayout de esta manera:

 <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" android:fitsSystemWindows="true" tools:context=".ui.activities.MainScreenActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_main_screen" /> </LinearLayout> </android.support.design.widget.CoordinatorLayout> 

Eso se debe a:

 <item name="android:statusBarColor">@android:color/transparent</item> 

supongo.

Lo tengo , compruebe esto:

http://developer.android.com/training/material/theme.html#StatusBar

Para establecer un color personalizado para la barra de estado, utilice el atributo android:statusBarColor al extender el tema de material . De forma predeterminada, android:statusBarColor hereda el valor de android:colorPrimaryDark .

Y lo ha configurado para que sea transparent . Esta no es una buena forma de hacerlo desde que Google le puso este código:

 <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 

Y también, en lugar de:

 <style name="AppTheme.NoActionBar"> 

Use esto y agregue un padre y compruebe:

 <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> 

Intenté todas las otras respuestas y ninguna funcionó. Lo que se fijó fue añadir esto a la AppBarLayout:

  app:elevation="0dp" 

Para obtener el comportamiento correcto, deberá eliminar

 android:fitsSystemWindows="true" 

Desde android.support.design.widget.CoordinatorLayout

En su styles.xml , el color definido en colorPrimaryDark se utilizará para dibujar la barra de notificación.

Tendrás que tener styles.xml en tu carpeta values-v21 con el siguiente elemento en tus estilos:

  <item name="android:statusBarColor">@android:color/transparent</item> 

Espero que esto ayude.

  • Cómo agregar icono (imagen, logotipo ..) a la barra de estado
  • Android: detecta que el usuario abre la barra de estado
  • ¿Mostrar la vista por encima de la barra de estado?
  • Temas de nido de abeja * .NoActionBar o * .NoTitleBar - ¿dónde está el botón Menú?
  • Android Muestra una notificación en la barra de estado sin una vista ampliable
  • ¿Cómo encontrar la altura de la barra de estado en Android a través de React Native?
  • ¿Cómo puedo hacer una notificación en la barra de estado sin el mensaje expandido en la ventana "Notificaciones"? (sólo desea el icono)
  • Android: icono de notificación de la barra de estado incremental
  • Implementación de una notificación interactiva en la barra de estado (Android)
  • Notificación de barra de estado de Android: haz que no se pueda borrar y vuelve a la aplicación (no inicia una nueva instancia)
  • Admob en Android - Área de barra de estado no cubierta cuando se reanuda la actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.