Как правильно реализовать иммерсивный полноэкранный режим в Android?

У меня есть приложение, где у меня есть одно действие, которое содержит слои фрагментов. Я хотел переключаться между иммерсивным режимом и нормальным режимом во время некоторых состояний приложения. Все было хорошо, пока я не вызвал Hide System UI согласно Android-документации

Код документации

Размеры фрагментов стали странными. Решения о переполнении стека не помогли.

Я загрузил проект на GitHub. Не могли бы вы рассказать о том, что я делаю неправильно?

  1. Проект Когда начался Первый шаг

  2. Когда другой фрагмент был добавлен к тому же FrameLayout

Шаг второй

  1. Когда третий фрагмент был добавлен к другому FrameLayout, когда включен режим погружения

Шаг 3

  1. Проблема начинается, когда вид третьего фрагмента свернут, мы запускаем "Нормальный режим". Верх и низ предыдущих фрагментов были вырезаны. Шаг 4

Кроме того, перейдите в полноэкранный режим, поверните, а затем нажмите на PIP. Это становится более уродливым.

Я загрузил проект на GitHub. Не могли бы вы рассказать о том, что я делаю неправильно?

1 ответ

public void showSystemUI() {
        View decorView = getWindow().getDecorView();

        if (decorView != null) {
            decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_VISIBLE  | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            );
        }
}

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

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