Android Lollipop: ImageView ignorando el atributo fitsSystemWindows (barra de estado transparente)

Actualmente estoy trabajando en una aplicación para la que quiero habilitar una barra de estado transparente. Quiero un ImageView (que necesito para su atributo scaleType ) para cubrir la totalidad de la pantalla para que la imagen se muestre debajo de la barra de estado. Aquí está mi diseño:

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:adjustViewBounds="true" android:fitsSystemWindows="true" android:scaleType="centerCrop" android:src="@drawable/picture" /> <android.support.v7.widget.Toolbar (...toolbar stuff...) /> (...some other stuff...) </RelativeLayout> <include layout="@layout/drawer" /> </android.support.v4.widget.DrawerLayout> 

Como puedes ver, es un DrawerLayout regular. Observe que el DrawerLayout , el RelativeLayout y el ImageView tienen el atributo fitsSystemWindows establecido en true.

Mi problema es: si establezco un recurso de fondo (como un color o una imagen) en DrawerLayout o RelativeLayout en el código anterior, puedo ver ese color o imagen "debajo" de la barra de estado, exactamente como lo quiero, Pero el "src" de ImageView siempre se muestra debajo de él, como si fitsSystemWindows completamente el atributo fitsSystemWindows .

Tengo los siguientes atributos en mi tema:

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

Con primary_dark siendo un negro semitransparente (esto no debería importar de todos modos, ya que como he dicho, esto parece ser un problema exclusivo de mi ImageView . La barra de estado transparente funciona perfecto para el DrawerLayout o el RelativeLayout .

Esto funciona perfectamente para mí

Usted tiene android:fitsSystemWindows="true" en cada viewGroup params. Intente dejar solo uno en ImageView.

O eliminar por completo todos ellos.

 fitSystemWindows 

No funciona en RelativeLayout. Utilice un FrameLayout o un ViewGroup que amplíe FrameLayout

Porque android:fitsSystemWindows="true" agregará un relleno al ImageView , por lo que el src está por debajo de la barra de estado. El tamaño del relleno es los insertos (la altura de la barra de estado). Puede utilizar FitsSystemWindowsFrameLayout para resolver este problema.

  • Obtener la parte no visualizada de slider / linearlayout para no cambiar el tamaño
  • Configuración de Android ImageView Bitmap FitXY no funciona
  • ¿El android: scaleType = "fitCenter" sólo funciona con los atributos fix Layout_width y Layout_height?
  • Android - ImageView no muestra la foto tomada con la cámara
  • ViewPager onClickListener hace referencia a la vista errónea en android
  • Imagen de diapositiva suave de una sola manera
  • Cómo convertir una cadena Base64 en una imagen de BitMap para mostrarlo en un ImageView?
  • Android: java.lang.OutOfMemoryError:
  • ¿Cómo destruir un dibujable dentro de un ImageView si no lo necesitamos?
  • Cómo recuperar ImageUri de un ImageView?
  • Teniendo problema en el dispositivo verdadero usando la imagen del vector en androide. SVG-android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.