Как снова скрыть панель навигации после того, как пользователь прокрутил ее вручную? - PullRequest
0 голосов
/ 04 мая 2020

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

    private void hideSystemUI() {
        // Enables regular immersive mode.
        // For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
        // Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_IMMERSIVE
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
        );
    }

Этот код работает нормально, пока пользователь не проведет пальцем вверх по панели навигации. Затем он остается там. Что я хочу, так это чтобы он снова скрывался через 2 секунды или около того. Есть ли способ добиться этого?

Я ценю любую помощь!

1 Ответ

0 голосов
/ 04 мая 2020

Вы можете использовать этот код:

private FullScreenListener fullScreenListener = new FullScreenListener();
private void initUiFlags() {
    int flags = View.SYSTEM_UI_FLAG_VISIBLE;

    flags |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;

    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(flags);
    decorView.setOnSystemUiVisibilityChangeListener(fullScreenListener);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...