zoukankan      html  css  js  c++  java
  • 安卓隐藏状态栏

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

    在 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() 设置的标志。

     

  • 相关阅读:
    Hessain 方法重载
    mac 类似Xshell
    idea & datagrip 注册码
    mac 安装mysql 修改密码
    securecrt 的安装
    datagrip的使用
    mac 安装oracle
    mac 安装mysql
    destoon 会员整合Ucenter/Discuz!/PHPWind教程
    destoon 深度整合discuz x2 UC 之免邮箱二次验证
  • 原文地址:https://www.cnblogs.com/ring1992/p/15701551.html
Copyright © 2011-2022 走看看