【问题标题】:How to hide navigation bar when i press action bar menu in Android当我在Android中按下操作栏菜单时如何隐藏导航栏
【发布时间】:2015-05-27 17:08:13
【问题描述】:

我隐藏了导航栏(见下文),但是当我按下操作栏上的菜单按钮时,导航栏会立即出现。 我可以隐藏导航吗?永久禁止?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

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

    getWindow().getDecorView().setSystemUiVisibility(
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
                    View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
                    View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                    View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

    setContentView(R.layout.activity_fomenu);
}

【问题讨论】:

    标签: android android-actionbar hide navigationbar


    【解决方案1】:

    看看documentation。它说隐藏导航使用

    View decorView = getWindow().getDecorView();
    // Hide both the navigation bar and the status bar.
    // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
    // a general rule, you should design your app to hide the status bar whenever you
    // hide the navigation bar.
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                  | View.SYSTEM_UI_FLAG_FULLSCREEN;
    decorView.setSystemUiVisibility(uiOptions);
    

    你已经在这样做了。但后来它说

    使用这种方法,触摸屏幕上的任意位置都会导致导航栏(和状态栏)重新出现并保持可见。用户交互导致标志被清除。清除标志后,如果您想再次隐藏这些栏,您的应用需要重置它们。请参阅Responding to UI Visibility Changes,了解有关如何监听 UI 可见性变化以便您的应用能够做出相应响应的讨论。

    这意味着当用户选择选项菜单时,您必须重置标志。还给出了示例代码here

    【讨论】:

    • 谢谢,但我希望尽可能避免出现导航栏。我尝试使用 onSystemUiVisibilityChange() 但直到菜单关闭导航。栏在屏幕上。
    猜你喜欢
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2016-02-02
    相关资源
    最近更新 更多