0

在我的应用程序的某个活动中,我隐藏了导航栏,因为该活动是全屏的。要隐藏导航栏,我使用以下代码:

    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 秒左右后再次隐藏。有没有办法做到这一点?

我很感激任何帮助!

4

1 回答 1

0

您可以使用此代码:

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);
}
于 2020-05-04T15:56:05.663 回答