1

我为 android 制作了一个全屏应用程序,它隐藏了支持 API 16 的导航栏和状态栏(从 Jelly Bean 开始)。我知道如果我想从 KitKat 开始隐藏导航栏和状态栏,我可以使用以下代码:

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_STICKY);

但是该代码对 Jelly Bean 不起作用,它只隐藏了一次条,一旦您触摸屏幕,它们就会重新出现。所以我知道下面的代码支持果冻豆,但它只隐藏了状态栏:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

谁能告诉我在果冻豆上永久隐藏导航栏的方法?

4

1 回答 1

0

尝试在屏幕上出现状态栏/导航栏后再次隐藏它。

以下是如何监听 UI 更改的信息:

https://developer.android.com/training/system-ui/visibility.html

相关部分:

View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener
        (new View.OnSystemUiVisibilityChangeListener() {
    @Override
    public void onSystemUiVisibilityChange(int visibility) {
        if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
            // system bars are visible
            // hide them again, maybe with some delay?
        }
    }
});
于 2015-08-17T14:38:21.087 回答