recuperar poner ocultar notificaciones estado como celular barra aparece activar abajo android xml android-layout

poner - ocultar barra de estado android



Barra de herramientas superpuesta debajo de la barra de estado (8)

Quiero tener la barra de herramientas appcompat v21 en mi actividad. Pero la barra de herramientas que estoy implementando se superpone debajo de la barra de estado. ¿Cómo puedo arreglarlo?

Aquí está el diseño de la actividad xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <include android:id="@+id/toolbar" layout="@layout/toolbar" /> <FrameLayout android:id="@+id/container" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" /> </LinearLayout>

Vista de barra de herramientas:

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" />

Estilo del tema:

<style name="AppTheme" parent="MaterialNavigationDrawerTheme.Light.DarkActionBar"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/accent</item> </style>


Eliminar las líneas siguientes del estilo o estilo (21)

<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@color/colorPrimaryDark</item> <item name="android:windowTranslucentStatus">false</item>


Ninguna de las respuestas funcionó para mí, pero esto es lo que finalmente funcionó después de configurar android:fitSystemWindows en la vista raíz (lo configuré en los estilos v21):

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

Asegúrese de no tener la siguiente línea como AS la pone por defecto:

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


Ninguna de las respuestas funcionó para mí, pero esto es lo que finalmente funcionó después de configurar android: fitsSystemWindows = "false"

en el archivo de diseño de actividades para padres no se sugiere en muchos lugares, pero es un trabajo para mí y me salva el día


Para mí, el problema era que copié algo de un ejemplo y usé

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

solo eliminar esto solucionó mi problema.


Según los documentos de Google, no debemos usar el atributo fitsSystemWindows en el tema de la aplicación, está destinado a usarse en archivos de diseño. Usar en temas puede causar problemas en los mensajes de tostadas.

Marque el problema here y el ejemplo del problema causado here

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

Ejemplo de uso de la forma correcta y que funciona bien con windowTranslucentStatus también.

<?xml version="1.0" encoding="utf-8"?> <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:fitsSystemWindows="true" android:layout_width="match_parent" android:layout_height="match_parent" > <include layout="@layout/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content"> </include> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" android:background="@color/white" android:animateLayoutChanges="true" app:headerLayout="@layout/navigation_drawer_header" app:menu="@menu/navigation_drawer_menu" /> </android.support.v4.widget.DrawerLayout>


Simplemente configure esto en el archivo v21 / styles.xml

<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@color/colorPrimaryDark</item>

y estar seguro

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


Use android:fitsSystemWindows="true" en la vista raíz de su diseño (LinearLayout en su caso). Y android:fitsSystemWindows es un

atributo interno para ajustar el diseño de la vista en función de las ventanas del sistema, como la barra de estado. Si es verdadero, ajusta el relleno de esta vista para dejar espacio para las ventanas del sistema. Solo tendrá efecto si esta vista está en una actividad no incrustada.

Debe ser un valor booleano, "verdadero" o "falso".

Esto también puede ser una referencia a un recurso (en la forma "@ [paquete:] tipo: nombre") o atributo del tema (en la forma "? [Paquete:] [tipo:] nombre") que contiene un valor de este tipo .

Esto corresponde al símbolo de recurso de atributo global fitsSystemWindows.


Eliminé todas las líneas mencionadas a continuación de /res/values-v21/styles.xml y ahora funciona bien.

<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item> <item name="windowActionBar">false</item> <item name="android:windowDisablePreview">true</item> <item name="windowNoTitle">true</item> <item name="android:fitsSystemWindows">true</item>