Android - Переключающий режим погружения включает режим наложения панели действий - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь реализовать иммерсивный (полноэкранный) режим в своем приложении для Android и столкнулся с проблемой, которую не могу решить.

Я следую руководству по режиму погружения и образцам приложений из Документов Android , и оно в основном работает, но при выходе из режима погружения панель приложений (панель действий) в моем приложенииостается в режиме наложения (он не запускается в режиме наложения при запуске операции), скрывая часть содержимого моей деятельности, и я не могу понять, какую комбинацию флагов пользовательского интерфейса и побитовых операторов мне нужно предоставить setSystemUiVisibility(), когдавыход из режима Immersive Mode, чтобы вернуть приложение в исходное состояние (с панелью приложений, которая не находится в режиме наложения).

У меня есть демонстрационное приложение , которое показывает проблему , и относительные биты кода выглядят следующим образом:

Стиль, используя встроенную панель инструментов / панель приложения / панель действий, хотяЯ попытался использовать свою собственную панель инструментов и установить ее в качестве панели действий поддержки, с теми же результатами.

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

Нажатие кнопки «Переключить режим погружения» в упражнении запускает следующий метод, который следуетРуководство по Android (см. Ссылку выше) для режима погружения.

private void toggleImmersiveMode() {
    View decorView = getWindow().getDecorView();

    if (mIsImmersiveEnabled) {
        // Immersive Mode is on, turn it off.
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
              | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
    } else {
        // Immersive Mode is off, turn it on.
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_IMMERSIVE
                // Set the content to appear under the system bars so that the
                // content doesn't resize when the system bars hide and show.
              | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
              | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                // Hide the nav bar and status bar
              | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN);
    }

    mIsImmersiveEnabled = !mIsImmersiveEnabled;

}

Я не пытаюсь отключить переход панели приложений в режим наложения при входе в режим погружения (я хочу эту функцию), но могуt выяснить, как заставить его отключить режим наложения при выходе из иммерсивного режима.Любая помощь будет оценена.

вот несколько скриншотов демонстрационного приложения:

при первоначальном запуске

initial launch

после входаПолноэкранный режим

Fullscreen Mode

после выхода из полноэкранного режима

After Exit Fullscreen

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...