0

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

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

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. 状态栏应该只在用户从顶部拖动时出现

4

2 回答 2

0

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

于 2015-12-07T18:09:55.797 回答
0

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

并使活动全屏调用此方法 requestFeature(Window.FeatureNo_Title)

于 2015-11-03T12:39:09.740 回答