当前位置: 首页 > news >正文

记录 | Android getWindow().getDecorView().setSystemUiVisibility(...)设置状态栏属性

纯纯的一边开发一边学习,是小白是菜鸟,单纯的记录和学习,大神勿喷,理解有错望指正~

getWindow().getDecorView().setSystemUiVisibility(…)

该方法用于控制系统 UI(如状态栏、导航栏)的可见性和行为;
虽然该方法在 Android 11(API 30)及更高版本中已被标记为废弃,但在旧版本中仍广泛使用;
最近有状态栏收起显示导致app布局伸缩的问题,也是靠此方法解决的,所以在此做一个记录;
以下是其支持的常用属性(通过 View 类的常量定义):

基础可见性控制
View.SYSTEM_UI_FLAG_VISIBLE // 默认状态,显示系统UI(状态栏+导航栏)。

View.SYSTEM_UI_FLAG_LOW_PROFILE	// "低调模式"(如游戏场景),状态栏/导航栏图标变暗。

View.SYSTEM_UI_FLAG_HIDE_NAVIGATION	// 隐藏导航栏(用户交互后会重新显示)。

View.SYSTEM_UI_FLAG_FULLSCREEN	// 隐藏状态栏(类似 Activity#setFullscreen(true))。

沉浸式模式(Immersive Mode)
View.SYSTEM_UI_FLAG_IMMERSIVE // 结合 HIDE_NAVIGATION,触摸屏幕不会退出沉浸式,需边缘滑动触发。

View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY // 类似 IMMERSIVE,但短暂自动隐藏系统UI(如视频播放场景)。

布局行为控制
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // 隐藏导航栏时,允许内容延伸到导航栏区域。

View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // 隐藏状态栏时,允许内容延伸到状态栏区域。

View.SYSTEM_UI_FLAG_LAYOUT_STABLE // 保持布局稳定,避免系统UI显隐导致内容跳动。

状态栏样式(Android 4.4+)
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR // 状态栏文字/图标浅色(适合浅色背景,需API 23+完全支持)。

View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR //导航栏按钮浅色(API 26+)。

我遇到的问题是从一个App1里进入App2的时候,由于App2是收起状态栏的,所以导致App1的布局拉伸了!退出和进入都会因为状态栏的隐藏和显示导致布局变化,显得很不和谐。

所以在App1的activity里面加入了SYSTEM_UI_FLAG_LAYOUT_STABLE这个属性,保持布局稳定,就不会出现这个情况啦!

使用方式:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}

相关文章:

  • ubuntu22.04LTS设置中文输入法
  • VBA第三十七期 VBA如何通过事件触发监视所有打开的工作簿或工作表?
  • Linux——Linux系统调用函数练习
  • TCP基础篇(一)
  • 002.指纹浏览器进阶-传参指定操作系统为macOS
  • 【论文推荐|滑坡检测·空间预测·时间预测· 数据驱动的分析】机器学习在滑坡研究中的最新进展与应用(2022)(五)
  • 一周学会Pandas2 Python数据处理与分析-NumPy简介
  • OpenStack 卷虚拟机跨租户迁移方案
  • 频域插值重构——频率采样FIR数字滤波器设计法的理论基础
  • DAY 36 leetcode 1--哈希表.两数之和
  • JVM监控
  • 注册中心 Nacos 的 CP 和 AP 模式原理
  • 矢量瓦片切片工具
  • Python 布尔类型
  • 【linux学习】linux系统调用编程
  • 数据结构|排序算法(一)快速排序
  • Spring Boot 打印日志
  • Linux makefile的一些语法
  • ORA-09925 No space left on device 问题处理全过程记录
  • windows下载安装远程桌面工具RealVNC-Server教程(RealVNC_E4_6_1版带注册码)
  • 苏州网站开发建设方法/百度账号注册申请
  • dw网站模板下载/四川企业seo推广
  • 服务周到的网站建设/seo查询官方网站
  • 用群晖如何做公司网站/seo软件优化工具软件
  • 免费的网站给一个/友情链接查询工具
  • 学校官方网站网页设计/深圳竞价托管公司