Android AppCompatActivity: NavigationView в полноэкранном режиме показывает серую полосу внизу

У меня есть AppcompatActivity (appcompat-v7: 25.3.1), который находится в полноэкранном режиме с использованием приведенного ниже кода. Но проблема в том, что когда в полноэкранном режиме отображается просмотр навигации, в Android 6.0 сверху и снизу отображаются черные оверлейные полосы, равные размерам строки состояния и панели навигации. Просмотр навигации после применения указанных ниже флагов (пока не могу вставлять изображения :( )

private void hideAndroidNavigation() {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
    getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}

Однако в Android 4.4 черный оверлей просто превращается в белый , как вы можете видеть на этом изображении .

Мне удалось удалить накладку для строки состояния, используя следующий код:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

Но мне не повезло с удалением наложения панели навигации. Я попробовал это решение https://stackoverflow.com/a/38008965/4428159, предлагая удалить View.SYSTEM_UI_FLAG_LAYOUT_STABLE, но результат был таким же

Есть ли другой способ удалить эти наложения или решение, специфичное для библиотек appcompat?


person Umar Hussain    schedule 06.07.2017    source источник


Ответы (1)


Проверьте, есть ли у вас следующая строка fitSystemWindows=true в вашем макете xml и стиль xml, если да, удалите строку или установите значение false

person Cheng Xu    schedule 28.11.2017