当前位置: 首页 > 知识库问答 >
问题:

带工具栏的沉浸式模式

祁辰阳
2023-03-14

我正在尝试进入沉浸式模式,使用

View decorView = getActivity().getWindow().getDecorView();
        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LOW_PROFILE
                | View.SYSTEM_UI_FLAG_IMMERSIVE);
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
((AppCompatActivity)getActivity()).getSupportActionBar().show();

工具栏部分隐藏在状态栏后面。那么我如何使工具栏再次正确地出现呢?

共有1个答案

颜镜
2023-03-14

尝试下面的方法来切换沉浸式模式,这个方法来自谷歌示例并与片段一起使用,如果你是用于活动,相应地改变它。

https://github.com/googlesamples/android-immersiveMode/blob/master/application/src/main/java/com/example/android/immersiveMode/immersiveModeDefragment.java

public void toggleHideBar() {

        int uiOptions = getActivity().getWindow().getDecorView().getSystemUiVisibility();
        int newUiOptions = uiOptions;
        boolean isImmersiveModeEnabled =
                ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions);
        if (isImmersiveModeEnabled) {
            Log.i(TAG, "Turning immersive mode mode off. ");
        } else {
            Log.i(TAG, "Turning immersive mode mode on.");
        }

        // Navigation bar hiding:  Backwards compatible to ICS.
        if (Build.VERSION.SDK_INT >= 14) {
            newUiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
        }

        // Status bar hiding: Backwards compatible to Jellybean
        if (Build.VERSION.SDK_INT >= 16) {
            newUiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN;
        }

        if (Build.VERSION.SDK_INT >= 18) {
            newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        }

        getActivity().getWindow().getDecorView().setSystemUiVisibility(newUiOptions);
        //END_INCLUDE (set_ui_flags)
    }
 类似资料:
  • 本文向大家介绍Android沉浸式状态栏微技巧(带你真正理解沉浸式模式),包括了Android沉浸式状态栏微技巧(带你真正理解沉浸式模式)的使用技巧和注意事项,需要的朋友参考一下  其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发起的。因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法。而有些人在没有完全了解清楚

  • 我想隐藏导航栏。如果使用者从外到内给手指下药,请出示。我测试以下代码: 怎么能把这三项加起来呢?我所缺少的。

  • 所以我有一个活动,我希望它全屏显示,显示标题栏和系统按钮(后退,最小化…)。我确实从开发人员那里获取了一段代码。Androidcom,它确实会全屏显示,但当我按下屏幕时,标题会弹回来,按钮也会弹出来,我希望只有当我的手指在屏幕的上/下滑动时,它才会弹出。 我的活动看起来像:

  • 本文向大家介绍Android 高仿QQ 沉浸式状态栏,包括了Android 高仿QQ 沉浸式状态栏的使用技巧和注意事项,需要的朋友参考一下 前言: 在进入今天正题前,还是老样子先谈谈感想吧,最近感觉整个都失去了方向感,好迷茫!找工作又失败了,难道Android真的饱和了?这两天我一直没出门,除了下楼哪外卖就是宅宿舍了,静想了许久,我还是不能忘了初心,我相信我找不到工作的原因有很多,最关键的还是要技

  • 我已经成功地将应用程序设置为沉浸式模式,因为我想要隐藏状态栏(在顶部屏幕上)和导航栏(在底部屏幕上)。问题是,当活动改变时,底部条自动出现,并立即下降和消失。我想避免这件事。 所有活动都在清单中设置了AppTheme.NoActionBar样式:

  • 在全屏沉浸式模式下,是否可以禁用打开主导航栏的左滑动手势,以便只能从顶部滑动打开它?在开发全屏游戏时,必须围绕防止用户意外打开它进行如此繁重的设计,这非常烦人。 提前感谢。 编辑: 很抱歉只是为了澄清我说的是一个水平锁定的全屏游戏,在沉浸式模式下,禁用使主android导航栏/通知栏出现的左滑动手势,我希望有一种方法可以只让它打开通过从顶部滑动。