自动隐藏状态栏但不隐藏软导航键

时间:2015-01-11 04:04:38

标签: android cordova

我是科尔多瓦的新手。 我可以同时使用Cordova和Java方法

我尝试了清单方式:

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"

状态栏在再次退出之前隐藏了半秒钟。而且,为什么我的主题不是黑色?它仍然是我系统的默认白色。

我在我的主xxx.java中尝试了java方式:

super.getActivity().runOnUiThread(new Runnable() {
    public void run() {
        View rootView = getActivity().getWindow().getDecorView().getRootView();
        int mUIFlag = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN;
        rootView.setSystemUiVisibility(mUIFlag);
    }
});

但它不是真正的全屏(由于屏幕调整大小而发生闪烁),它不会自动隐藏,当点击发生时,两个栏都会退出。

我尝试了Cordova的默认全屏首选项

它还隐藏了软导航按钮,因为我不希望这种情况发生。

有没有办法自动隐藏状态栏而不是软导航栏并保持全屏模式?

1 个答案:

答案 0 :(得分:0)

真的不是理想的方式。我进入了Cordova的\src\org\apache\cordova\cordovaactivity.java并注释掉了隐藏的导航线(在我的情况下是ln 276):

@SuppressLint("NewApi")
private void toggleFullscreen(Window window) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        final int uiOptions =
                  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*/;

        window.getDecorView().setSystemUiVisibility(uiOptions);
    } else {
        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
}