Настройка дочернего представления для соответствия системным окнам
Я настраиваю простое представление, которое просто содержит пустой RelativeLayout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:clipToPadding="false"
android:background="@color/red"/>
Используя эту тему:
<style name="FullscreenTheme" parent="BaseTheme">
<item name="android:textColorSecondary">@android:color/white</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>
И это в onCreate:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
Это приводит к желаемому эффекту:
Однако, когда я пытаюсь добавить ребенка, я не могу заставить его сделать то же самое. XML выглядит так:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:clipToPadding="false"
android:background="@color/red">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bit_teal"
android:fitsSystemWindows="true"
android:clipToPadding="false"/>
</RelativeLayout>
И вот как это выглядит:
Есть идеи?
1 ответ
Решение
Избавляться от android:fitsSystemWindows="true"
от RelativeLayout
, Я не думаю, что оба могут соответствовать системному представлению одновременно, и родитель всегда будет иметь приоритет перед ребенком (ren)