Android-режим погружения

Я хочу скрыть панель навигации. Онил покажет, если пользователь поглаживает свой палец снаружи внутрь. Я проверяю этот код:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

  if(hasFocus) {
        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);
    }
}

Действие начинается хорошо, и навигационные панели не появляются. У бути возникают следующие проблемы: 1) Если коснуться экрана где-либо, отображается панель навигации. 2) Когда это шоу, оно не показывается прозрачным. 3) Панель навигации никогда не прячется.

Как можно добавить эти три пункта? Чего мне не хватает

1 ответ

Добавьте липкий флаг View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY в setSystemUiVisibility как описано в документации https://developer.android.com/training/system-ui/immersive.html

Таким образом, после скольжения от края экрана, навигационные панели будут отображаться в течение нескольких секунд, а затем снова скрываются.

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