• 安卓隐藏状态栏


    我们在开发游戏的时候一般都是全屏显示,但是在操作下拉显示状态栏,切后台之后再切回来发现状态栏还存在,并没有消失。

    在 Android 4.1(API 级别 16)及更高版本中隐藏状态栏可以使用setSystemUiVisibility()

    setSystemUiVisibility() 在单个视图级别设置界面标记;这些设置会聚合到窗口级别。与使用 WindowManager 标记相比,使用 setSystemUiVisibility() 设置界面标记让您可以更精细地控制系统栏。

    int flag = 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 // hide
                    | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
    getWindow().getDecorView().setSystemUiVisibility(flag);

    setSystemUiVisibility的相关属性

    View.SYSTEM_UI_FLAG_HIDE_NAVIGATION //隐藏导航栏
    View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
    View.SYSTEM_UI_LAYOUT_FLAGS
    View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN //全屏,状态栏会盖在布局上
    View.SYSTEM_UI_FLAG_FULLSCREEN //全屏,状态栏和导航栏不显示
    View.SYSTEM_UI_FLAG_VISIBLE //显示状态栏和导航栏
    View.SYSTEM_UI_FLAG_LAYOUT_STABLE // 保持View Layout不变,隐藏状态栏或者导航栏后,View不会拉伸
    View.SYSTEM_UI_FLAG_LOW_PROFILE //状态栏:低能显示状态,状态栏上一些图标显示会被隐藏
    View.SYSTEM_UI_FLAG_IMMERSIVE //只有当设置了SYSTEM_UI_FLAG_HIDE_NAVIGATION才起作用。如果没有设置,任意的View相互动作都退出SYSTEM_UI_FLAG_HIDE_NAVIGATION模式。如果设置就不会退出
    View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY //只有当设置了SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION 时起作用。如果没有设置,任意的View相互动作都退出SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION模式

    请注意以下几点:

    • 界面标志被清除后(例如,离开 Activity),如果您希望再次隐藏这些栏,应用需要重置这些标志。请参阅响应界面可见性更改,其中探讨了如何监听界面可见性更改,以便您的应用相应地做出响应。
    • 在不同的位置设置界面标记会产生不同的效果。如果您在 Activity 的 onCreate() 方法中隐藏系统栏,那么当用户按主屏幕按钮时,系统栏会重新出现。当用户重新打开 Activity 后,系统不会调用 onCreate(),因此系统栏仍保持可见。如果您希望在用户进入和退出 Activity 时继续保留系统界面更改,请在 onResume() 或 onWindowFocusChanged() 中设置界面标记。
    • 要使方法 setSystemUiVisibility() 生效,您调用它时所在的视图必须可见。
    • 离开该视图会导致系统清除使用 setSystemUiVisibility() 设置的标志。

     

  • 相关阅读:
    CSS魔法堂:选择器及其优先级
    HTML5 placeholder实际应用经验分享及拓展
    WEBAPP开发技巧(手机网站开发注意事项)
    PhotoShop的10大误区
    django之搜索引擎功能实现
    django之使用git协作开发项目
    docker简单操作
    docker之container eb7a144fe8ce is using its referenced image 9b9cb95443b5
    django之动态轮播图技术的实现
    django之Model(数据表)的增删改查
  • 原文地址:https://www.cnblogs.com/ring1992/p/15701551.html
Copyright © 2020-2023  润新知