永久隐藏导航栏

时间:2014-07-22 00:35:34

标签: android window navigationbar android-homebutton

我已按照此主题隐藏导航栏:

Hide ICS back home task switcher buttons

活动开始时工作正常,但每当我按下屏幕上的任何位置时,导航栏会再次出现。我在没有任何“视图”的空活动中尝试了这个,除了内容视图。

如何在整个活动期间隐藏它而无需添加某种定时器或线程来隐藏它每毫秒?

获得一些额外的屏幕尺寸或能够在我的应用程序中自定义我自己的导航栏会很棒。

if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH )
    getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_HIDE_NAVIGATION );
else if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB )
    getWindow().getDecorView().setSystemUiVisibility( View.STATUS_BAR_HIDDEN );

1 个答案:

答案 0 :(得分:0)

这是一个很长一段时间我们需要全屏显示som内容的问题,这使得在某些版本的Android上隐藏状态栏的难度大大增加:

最后,Google最新的Android OSKitKat引入了一个不错的用户友好工具,让我们拥有最后一点屏幕的所有权。

使用沉浸式全屏模式,请参阅:https://developer.android.com/training/system-ui/immersive.html

// This snippet hides the system bars.
private void hideSystemUI() {
    // Set the IMMERSIVE flag.
    // Set the content to appear under the system bars so that the content
    // doesn't resize when the system bars hide and show.
    mDecorView.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 // hide nav bar
            | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
            | View.SYSTEM_UI_FLAG_IMMERSIVE);
}

// This snippet shows the system bars. It does this by removing all the flags
// except for the ones that make the content appear under the system bars.
private void showSystemUI() {
    mDecorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}

以下是:http://blog.grio.com/2014/02/androids-hiding-of-the-system-bar-fixed.html

中的荆棘