【问题标题】:Android hide action bar, status bar and navigation controlsAndroid 隐藏操作栏、状态栏和导航控件
【发布时间】:2016-02-02 06:20:33
【问题描述】:

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

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

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. 在其他设备上,activity填满了整个屏幕,但是当我点击任何东西时,会出现状态栏和导航栏,它们会调整布局大小,看起来很丑

我想要达到的目标:

  1. Activity 应该横向填满整个屏幕,如果它们出现的话,位于状态栏和导航栏的后面

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

  3. 状态栏应该只在用户从顶部拖动时出现

【问题讨论】:

    标签: android landscape android-fullscreen android-statusbar


    【解决方案1】:

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

    并让活动全屏调用 这种方法 requestFeature(Window.FeatureNo_Title)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多