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



我正在尝试制作一个完全全屏的横向活动,并使状态栏和导航按钮在纵向中可见。我必须能够用程序来做这件事。

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

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. 在其他设备上,活动会填充整个屏幕,但当我点击任何东西时,状态栏和导航栏就会出现,它们会调整布局大小,看起来非常难看

我正在努力实现的目标:

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

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

  3. 只有当用户从顶部拖动时,状态栏才会出现

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

并进行活动全屏呼叫这种方法requestFeature(Window.FeatureNo_Title)

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

最新更新