La barra de estado se vuelve blanca y no muestra contenido detrás de ella

Estoy probando AppCompat en Marshmallow. Y quiero tener una barra de estado transparente sin embargo, se vuelve blanco. He intentado un par de soluciones, pero no funcionó para mí ( Transparent barra de estado no funciona con windowTranslucentNavigation = "false" , Lollipop: dibujar detrás de statusBar con su color establecido a transparente ). Aquí está el código relacionado.

Mis estilos.xml

<style name="Bacon" parent="Theme.Bacon"/> <style name="Theme.Bacon" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/theme_primary</item> <item name="colorPrimaryDark">@color/theme_primary_dark</item> <item name="colorAccent">@color/theme_accent</item> <item name="windowActionBar">false</item> <item name="windowActionBarOverlay">true</item> <item name="windowNoTitle">true</item> <item name="android:windowBackground">@color/background_material_light</item> </style> <style name="Theme.Bacon.Detail" parent="Bacon"/> 

V21

 <style name="Bacon" parent="Theme.Bacon"> <item name="android:windowDrawsSystemBarBackgrounds">true</item> </style> <style name="Theme.Bacon.Detail" parent="Bacon"> <item name="android:statusBarColor">@android:color/transparent</item> </style> 

Actividad

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" /> </FrameLayout> 

Fragmento

 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="192dp" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginBottom="32dp" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:statusBarScrim="@color/black_trans80"> <ImageView android:id="@+id/photo" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/photo" android:fitsSystemWindows="true" android:scaleType="centerCrop" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/anim_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> 

Introduzca aquí la descripción de la imagen

(Un poco tarde para la fiesta, pero podría ayudar a alguien)

Tuve el mismo problema. De alguna manera, algunas actividades eran normales mientras que las nuevas que creé mostraban una barra de estado blanca en lugar del valor de colorPrimaryDark .

Después de probar varios consejos, me di cuenta de que las actividades normales de trabajo donde todos los que utilizan CoordinatorLayout como la raíz de la distribución, mientras que para los demás que había sustituido por disposiciones regulares porque no necesitaba las características (animación, etc) proporcionada por CoordinatorLayout .

Así que la solución es hacer CoordinatorLayout el diseño de la raíz, y luego dentro de él agregar su anterior raíz de diseño. Aquí hay un ejemplo:

 <?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" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <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> <!-- your activity content here--> </LinearLayout> </android.support.design.widget.CoordinatorLayout> 

TENGA EN CUENTA que sin android:fitsSystemWindows="true" esta solución no funciona para mí.

Probado en Lollipop y Marshmallow

Encontré la respuesta en este enlace: Barra de estado El color no cambia con Layout relativo como elemento raíz

Así que resulta que necesitamos eliminar el

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

En styles.xml (v21). Y funciona muy bien para mí.

Después de probar sin éxito todo lo anterior, encontré que establecer explícitamente el tema fijado el problema.

 setTheme(R.style.AppTheme); 

Que tiene que ir antes de la super.OnCreate () en su actividad.

Agrega esto en tu estilo.xml

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

Y esto en su onCreate ();

  getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 

Sólo tiene que poner este elemento en su v21 \ styles.xml:

cierto

Debe tener un aspecto como este :

 <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowTranslucentStatus">true</item> </style> 

Para mí funcionó haciendo lo siguiente:

  1. Establezca el tema .NoActionBar
  2. Envuelva la barra de herramientas en android.support.design.widget.AppBarLayout
  3. Realice android.support.design.widget.CoordinatorLayout como el diseño principal.

Esencialmente es el tercer paso que dibuja la barra de estado en el colorPrimaryDark contrario no se dibuja si se utiliza NoActionBar tema. El segundo paso le dará a su barra de herramientas esa superposición .

Fijé mi edición cambiando mi disposición de la actividad de FrameLayout a RelativeLayout. Gracias a todos los que trataron de ayudar!

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/theme_primary_dark" android:fitsSystemWindows="true" /> </RelativeLayout> 

Intente jerarquía-visor o ViewInspector . Estas herramientas pueden ayudarle.

No estoy seguro de si es tarde, pero espero que ayude a alguien. * Hacer una falsa vista con fondo transparente que se ajuste a la disposición, y hacer un coordinatorlayout como su elemento de la disposición raíz.

 <View android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" android:fitsSystemWindows="true" /> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" android:src="@drawable/something" /> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> .... YOUR LAYOUT 

Me enfrenté a la misma cuestión. Lo que hice fue que en el archivo "v21 / styles.xml" cambió el valor true:

  <item name="android:windowDrawsSystemBarBackgrounds">true</item> 

a:

  <item name="android:windowDrawsSystemBarBackgrounds">false</item> 

Mi conjetura es que esto es causado por su android:windowBackground . ¿Es @color/background_material_light una referencia a blanco?

Compruebe que esta barra de herramientas se vuelve blanca – AppBar no se dibuja después de desplazarse fuera de la pantalla

https://code.google.com/p/android/issues/detail?id=178037#c19

Estoy utilizando las bibliotecas 23.0.0. Y el error todavía se produce.

Solución para esto es agregar vista que no ocupa casi ningún espacio y puede ser invisible. Vea la estructura abajo.

 <android.support.v4.widget.NestedScrollView app:layout_behavior="@string/appbar_scrolling_view_behavior"> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.AppBarLayout> <android.support.v7.widget.Toolbar app:layout_scrollFlags="scroll|enterAlways" /> <android.support.design.widget.TabLayout app:layout_scrollFlags="scroll|enterAlways" /> <View android:layout_width="match_parent" android:layout_height=".3dp" android:visibility="visible"/> </android.support.design.widget.AppBarLayout> 

Esta pregunta en Stackoverflow.com se refieren a este error también: CoordinatorLayout Toolbar invisible en entrar hasta la altura completa AppBarLayout – Layout a veces invisible una vez que entra en la vista (incluso si no se ha introducido)

Mejor enfoque

Compruebe su archivo style.xml donde está su tema NoActionBar. Asegúrese de que tiene su padre como Theme.AppCompat.NoActionBar y también personalizarlo mediante la adición de su esquema de color. Por último establecer sus temas en manifiesto, según sea necesario.

A continuación se muestra un ejemplo de mi archivo styles.xml (ActionBar + NoActionBar).

 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <!-- No ActionBar application theme. --> <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

Sólo quite la siguiente etiqueta del estilo v21 @android: color / transparente

Esto funciona para mí.

  • Colorear la barra de estado de Android en Nav Drawer
  • Creación de un SearchView que se parezca a las directrices de diseño del material
  • Cajón de navegación de derecha a izquierda con v7 ActionBarDrawerToggle
  • Android Studio - Valores de error de compilación de Appcompat-v23 / styles_bases.xml
  • Diseño del material: Nav Ancho del cajón
  • Appcompat-v7: 21.0.0 no funciona con el servicio de Google Play 6.1+
  • Barra de herramientas Appcompat no da estilos a spinner
  • Los elementos de ActionBar aparecen siempre en el menú de desbordamiento
  • ShowAsAction = "always" se ignora en la barra de herramientas
  • Barra de herramientas y ActionBar contextual con AppCompat-v7
  • Crash en Android 2.3.3 después de actualizar a la biblioteca de soporte 25.0.0 (java.lang.NoSuchMethodError: android.view.View.isAttachedToWindow)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.