В настоящее время я работаю над приложением, для которого я хочу включить прозрачную строку состояния. Я хочу, чтобы ImageView
(который мне нужен для его атрибута scaleType
) для покрытия всего экрана, чтобы изображение отображалось ниже строки состояния. Здесь мой макет:
<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>
Как вы можете видеть, это обычный DrawerLayout
. Обратите внимание, что для атрибутов DrawerLayout
, RelativeLayout
и ImageView
атрибут fitsSystemWindows
установлен равным true.
Моя проблема: Если я установил фоновый ресурс (например, цвет или изображение) в DrawerLayout
или RelativeLayout
в приведенном выше коде, я могу видеть, что цвет или изображение "ниже" строка состояния, точно так же, как я ее хочу, но ImageView
'src' drawable всегда отображается под ним, как если бы он полностью игнорировал атрибут fitsSystemWindows
.
У меня есть следующие атрибуты в моей теме:
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/primary_dark</item>
Поскольку primary_dark является полупрозрачным черным (это ни в коем случае не имеет значения, поскольку, как я уже сказал, это кажется исключительной проблемой для моего ImageView
. Прозрачная строка состояния отлично подходит для DrawerLayout
или RelativeLayout
.