Barra de navegación translúcida Lollipop (fitsSystemWindows = "true")
Estoy tratando de obtener la barra de navegación translúcida con fitsSystemWindows = "true". Funciona muy bien en kitkat, la barra de navegación translúcida muestra el contenido usando android: clipToPadding = "false". Pero la barra de navegación Lollipop no muestra el contenido.
De archivo: Cajón de la navegación cerrado
- Cómo hacer que el botón transparente en mi aplicación sea visible
- Cómo hacer un fondo 20% transparente en Android
- El tema translúcido no funciona cuando se programa mediante programación en Android 2.3.3 o 4.2
- Transparencia hexagonal en colores
- Escena de OpenGL con fondo transparente + widgets nativos por debajo y por encima
Este es el xml:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawerLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:clipToPadding="false" tools:context=".MainActivity"> <!-- The main content view --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- Your main content --> <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="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="8dp" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <Button android:layout_marginTop="24dp" android:background="@color/md_red_500" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="800dp" /> </LinearLayout> <!-- The navigation drawer --> <com.videum.javier.myapplicationeliminmar.ScrimInsetsFrameLayout android:clipToPadding="false" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/scrimInsetsFrameLayout" android:layout_width="320dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@android:color/white" android:elevation="10dp" android:fitsSystemWindows="true" app:insetForeground="#4000"> <!-- Your drawer content --> <Button android:layout_marginTop="24dp" android:background="@color/md_red_500" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="800dp" /> </com.videum.javier.myapplicationeliminmar.ScrimInsetsFrameLayout>
Este es el estilo (mismo v19 y v21):
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/md_red_500</item> <item name="colorPrimaryDark">@color/md_red_700</item> <item name="android:windowTranslucentNavigation">true</item> <item name="android:windowTranslucentStatus">true</item> </style>
El archivo java sólo tiene soporte para la barra de herramientas.
Necesito que fitsSystemWindows se mantenga siempre verdadero.
El cajón de navegación funciona bien en ambas versiones. Por ejemplo, si agrego un botón dentro de él: el cajón de navegación abierto
- Android-transparent RelativeLayout
- Establecer el fondo de forma transparente en android
- ¿Cómo puedo configurar el valor alfa de una vista completa en el nivel 7 de api (Android 2.1)
- ImageButton no se resalta en hacer clic con fondo transparente
- Vista superficial en capas en un FrameLayout en Android
- Android AlertDialog con fondo transparente
- Android Image transparency - alternativa para setAlpha obsoleto para API <11
- OpenGL ES 2.0 PNG canal alfa
Usted no ha especificado en el tema, que usted toma la responsabilidad de dibujar detrás de las barras del sistema:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> ... <item name="android:windowDrawsSystemBarBackgrounds">true</item> </style>
No establezca fitsSystemWindow = "true" en su DrawerLayout. De forma predeterminada, Ventana del sistema es la ventana debajo de la barra de estado y encima de la barra de navegación, incluso si se establece windosTransclucentStatus / Navigation = "true", lo que puede hacer pensar que "ahora las ventanas son de pantalla completa". Si se ajusta a esta ventana, por supuesto, el contenido no se expandirá para que se ajuste a toda la pantalla.