当前位置: 首页 > 知识库问答 >
问题:

如何在Android应用程序中隐藏导航栏?

彭博厚
2023-03-14

我想知道如何在Android应用程序中隐藏导航栏?

起初我知道如何隐藏它,但一旦我触摸屏幕,它就会弹出。我想把它隐藏起来,就像《部落冲突》这样的游戏把它隐藏起来一样,唯一让它弹出的方法是向下滑动通知或者滑动导航栏应该在的地方。

共有3个答案

米元凯
2023-03-14

只需将此方法放在“活动”中,以便在“粘滞”模式下隐藏状态栏和导航栏。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    //This is used to hide/show 'Status Bar' & 'System Bar'. Swip bar to get it as visible.
    View decorView = getWindow().getDecorView();
    if (hasFocus) {
        decorView.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);
    }
}
和弘博
2023-03-14

这里是onCreate方法的上下文:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.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);

    }

Android文档很好地解释了不同标志的作用:使用沉浸式全屏模式

匡祖鹤
2023-03-14

使用沉浸模式检查此沉浸模式

    // 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);
}
 类似资料:
  • 我正在做一个应用程序,并有权访问系统权限。我想让导航栏永久隐藏,它甚至不应该出现在用户交互上。 现在我使用这段代码,它隐藏了条,但当用户触摸屏幕时,它会再次显示。是否有任何方法可以永久隐藏它,直到活动停止(); 如有任何关于最佳实施的技术咨询或意见/建议,将不胜感激。

  • 如何使底部导航栏在Android Studio的visual XML编辑器中消失?我已经将AppTheme设置为NoActionBar。导航栏很烦人,因为我的手机没有导航栏,所以当我在可视编辑器中的应用程序底部放置一些东西时(https://i.imgur.com/1QvdIOd.png),当我在手机上运行应用程序时会发生这种情况:https://i.imgur.com/Qk5S1Oe.jpg.谁

  • 我想在我的活动中永久隐藏导航栏(而不是整个系统ui)。现在我正在使用这段代码 它隐藏栏,但是当用户触摸屏幕时,它会再次显示。有没有办法永久隐藏它,直到活动;

  • 问题内容: 是否有隐藏光标的方法(除了使用透明图像作为光标以外)? 问题答案: 似乎该类没有开始的“空白”游标,因此可以使用该方法定义一个新的“空白”游标。 这是我尝试过的一种可行的方法: 编辑 关于结尾处没有游标的所有注释,似乎包含在中的s 最终将继承容器的游标(),因此如果要求一定要让游标出现,则必须手动设置所需的光标。 例如,如果中包含,则可以使用方法将其光标设置为系统的默认值:

  • 问题内容: 我可以使我的应用程序通过SFSafariViewController自动加载此帖子的网址,并且效果很好,唯一的缺点是导航栏。 以这种方式使用SFSafariViewController导航栏时,它是无用的,因为url是只读的,并且“ done”链接除了重新加载页面外不执行任何操作。因此,我想完全隐藏导航栏。 根据已接受答案的注释,建议将我的根视图控制器设置为SFSafariViewCo

  • 问题内容: 如何快速隐藏第一个ViewController或特定ViewController的导航栏? 我在中使用了以下代码: 以及: 两种方法都对所有ViewController隐藏导航控制器。 问题答案: 如果您知道其他所有视图都应显示该栏,则可以将其重新设置为可见。 在Swift中: