Активность не становится полностью захватывающей после восстановления от уничтожения (только леденец на палочке)

Когда моя заявка destroyed и затем возобновление, черная полоса появляется там, где в противном случае были бы кнопки навигации. Мое приложение предназначено для полноэкранного режима без кнопок навигации, поэтому эта панель блокирует просмотр некоторых моих материалов. Я смог воспроизвести это только на Lollipop (не KitKat) и только тогда, когда мое приложение проходит уничтожение (не просто остановка и запуск).

Я что-то упускаю или неправильно настраиваю для Lollipop? Я отладил и убедился, что мои вызовы для установки флагов делаются в обоих onCreate а также onWindowFocusChanged всякий раз, когда моя деятельность создается, будь то после уничтожения или совершенно новый экземпляр.

Если я уйду и вернусь к занятию или поверну экран, панель исчезнет, ​​и я все увижу как обычно.

Обновление - не имеет значения, подаю ли я заявку FLAG_FULLSCREEN или же FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS, Также можно нажимать кнопки под черной полосой, после чего черная полоса исчезает перед загрузкой следующего действия.

Скриншот, где я выделяю черную полосу и показываю, что я должен увидеть под ней:

Вот флаги, которые я установил для полноэкранного режима на моем onCreate() метод.

mDecorView = getWindow().getDecorView();
        // call before setContentView to avoid system bars briefly showing
        int currentapiVersion = android.os.Build.VERSION.SDK_INT;
        System.out.println("checking os version");
        if (currentapiVersion >= Build.VERSION_CODES.KITKAT) {
            System.out.println("KitKat or newer");
            mDecorView.setSystemUiVisibility(
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            );
        } else{
            System.out.println("Older than KitKat");
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        }

Здесь я делаю то же самое, чтобы обеспечить полноэкранный режим onWindowFocusChanged()

@SuppressLint("NewApi")
    @Override
    public void onWindowFocusChanged(boolean hasFocus){
        super.onWindowFocusChanged(hasFocus);
        if(hasFocus){
            int currentapiVersion = android.os.Build.VERSION.SDK_INT;
            if (currentapiVersion >= Build.VERSION_CODES.KITKAT) {
                mDecorView.setSystemUiVisibility(
                      View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                );
            } else{
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            }
        }
    }

0 ответов

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