Android隐藏操作栏,状态栏和导航控件

时间:2015-11-02 11:18:56

标签: android landscape android-fullscreen android-statusbar

我正在尝试制作横向完全全屏的活动,并以纵向显示状态栏和导航按钮。 我必须能够以编程方式执行此操作。

这就是我试图让应用程序全屏显示的方式。

private void hideNavigationAndStatusBars(){
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); // these work only on API 21 and above

    View decorView = getWindow().getDecorView();
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
    decorView.setSystemUiVisibility(uiOptions);
}

问题如下:

  1. 在某些设备上,即使状态栏未显示,我在屏幕顶部显示一个空白部分,即等于状态栏的高度
  2. 在其他设备上,活动会填满整个屏幕,但当我点击任何内容时,状态栏和导航栏会出现,它们会调整布局大小并且看起来很难看。
  3. 我想要实现的目标:

    1. 活动应以横向填充整个屏幕,位于状态栏和导航栏后面(如果出现)

    2. 当用户点击屏幕时,他/她应该与屏幕进行交互。相反,第一次单击会显示状态和导航栏,只有在此

    3. 之后才能进行交互
    4. 只有当用户从顶部拖出

    5. 时,才会显示状态栏

2 个答案:

答案 0 :(得分:0)

隐藏操作栏调用getActionBar()。hide()方法。

并使活动全屏通话 这种方法 requestFeature(Window.FeatureNo_Title)

答案 1 :(得分:0)

使用沉浸式模式和系统ui稳定标志来实现这一目标。有关更多信息,请参阅开发人员站点中的文档。