Настройка дочернего представления для соответствия системным окнам

Я настраиваю простое представление, которое просто содержит пустой 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)

Другие вопросы по тегам