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

实现状态栏透明

状态栏在themes.xml文件里面添加以下两条可以将状态栏设置为透明状态;

<item name="android:statusBarColor">@android:color/transparent</item> <item name="android:windowLightStatusBar">true</item>

这两天只做一件事:把状态栏本身颜色变透明不会强制让页面布局向上延伸盖住状态栏

页面能不能填充到状态栏,由根布局类型 + fitsSystemWindows控制。

所以我使用时候ConstraintLayout布局生效了,LinearLayout没有生效。

两者底层区别:

  1. ConstraintLayout 布局规则:子控件约束到 parent 最顶端,会主动向上侵入状态栏区域Constraint 是坐标约束布局,layout_constraintTop_toTopOf="parent"强制控件贴屏幕最顶部,无视状态栏分隔,背景会向上铺满状态栏。
  2. LinearLayout流式顺序排列;默认从状态栏下方开始绘制,不会主动向上延伸;加上居中 + 全局 padding,顶部空白底色直接露出来

解决LinearLayout布局下状态栏和主题颜色不同时候有以下两种方法:

  • 根 LinearLayout 加两行属性
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:padding="16dp" android:background="@drawable/ic_backguand" android:orientation="vertical" <!-- 新增这两行 --> android:fitsSystemWindows="false" android:clipToPadding="false">

clipToPadding="false":允许布局背景绘制到 padding 区域外,向上填充状态栏。

  • 强制布局顶到屏幕最顶端
    import android.view.WindowManager override fun onCreate(savedInstanceState: Bundle?) { window.setFlags( WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS ) super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) }

    不要给 LinearLayout 设置fitsSystemWindows="true",这个属性会自动在顶部加状态栏高度 padding

如果不想修改LinearLayout布局,可以在主题彻底统一透明状态栏

<style name="Base.Theme.Demo" parent="Theme.Material3.DayNight.NoActionBar"> <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:windowLightStatusBar">true</item> <!-- 新增两行关键属性 --> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowTranslucentStatus">true</item> </style>
  • windowTranslucentStatus:状态栏完全透明,页面背景向上填充
  • windowDrawsSystemBarBackgrounds:允许页面绘制覆盖状态栏区域
http://www.cnnetsun.cn/news/3099492.html

相关文章:

  • 三步实现百度文库文档免费获取:技术原理与实践指南
  • 第一次去医院资料别临时翻
  • 手把手教你怎么安装Bruker DataAnalysis 4.4 质谱数据处理软件下载安装教程
  • 格式转换一键搞定!视频、音频、图片、文档轻松互转!
  • 向日葵CLI如何赋能批量设备远程运维管理?附AI自动化管理实战
  • 5分钟快速上手PPTist:免费网页版PPT制作工具的终极指南
  • 私域直播SaaS横向测评:保利威、诺云、悦邻,谁更懂“社区门店”的生意逻辑?
  • 计步器算法原理及数据分析
  • PPTist免费网页版PPT制作工具:告别Office束缚,打造专业演示文稿的终极指南
  • 瑞芯微RV1126B开发板(EASY-EAI-PI2) 人员检测
  • 电子电路与PCBA:从概念到可制造组装
  • edis 单线程真的是单线程吗?源码角度全面解析
  • 【EI会议征稿进行中】第六届电子通信与计算机科学技术国际学术会议(ECCST 2026)
  • 光模块耦合,到底 “耦合” 了什么?
  • ESP芯片烧录终极指南:从零开始掌握esptool.py完整操作流程
  • 如何快速掌握Audacity:免费音频编辑的完整指南
  • OpenMP并行编程优化与性能调优实践
  • 如何高效使用抖音无水印下载工具:专业用户的完整方案指南
  • 真实用户见证:八位企业负责人的GEO实践访谈
  • 第二篇:系统功能测试实战:图书借阅模块 BUG 排查与修复代码
  • 美图ai模特一键换装,提升电商图片质感的实用工具全测评
  • 国内开发者开通 ChatGPT Plus 屡屡支付失败?记一次 ChatGPT Plus 国内订阅踩坑全过程:支付拦截底层原因拆解 稳定替代方案实操记录
  • AI编码助手真实提效20%-30%:聚焦样板代码、文档摘要与低风险重构
  • 外卖佣金涨到20%之后,我算了一笔账:为什么越来越多商家开始自己搞配送?
  • 计算机毕业设计之基于机器学习的个性化智能推荐系统的设计与实现
  • 方壳电池pack生产线如何选择?
  • SSH密钥实战指南:从原理到配置,实现安全免密登录与自动化运维
  • 小程序同城配送和上门收件发快递新功能发布
  • 空洞骑士模组管理器Scarab:5分钟搞定100+模组安装的终极指南
  • 终极Axure中文界面汉化指南:3分钟解锁流畅原型设计体验