0

0

关于 Android 状态栏的适配总结

星夢妙者

星夢妙者

发布时间:2025-09-07 09:00:11

|

724人浏览过

|

来源于php中文网

原创

实现android状态栏的适配和样式调整需要根据不同的android版本采用不同的方法,以下是详细的说明和示例:

  1. 沉浸式状态栏:使内容布局延伸到系统状态栏,实现透明效果。

    • Android 5.0及以后版本:通过设置属性

      View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
      ,内容布局可以延伸到系统状态栏。然后使用
      setStatusBarColor()
      方法将系统状态栏设置为透明。

      getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
      getWindow().setStatusBarColor(Color.TRANSPARENT);
    • Android 4.4 ~ Android 5.0:使用

      getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
      使状态栏透明,并使内容布局延伸到系统状态栏。此方法在Android 5.0及以后版本上也可以使用,但效果不理想。

      getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    • Android 4.4之前:不支持透明状态栏。

    注意:在设置透明状态栏时,内容布局需要延伸到状态栏,因此使用

    fitSystemWindows
    属性会导致奇特效果。

  2. 状态栏颜色与布局颜色搭配:不延伸内容布局到系统状态栏,只需调整状态栏颜色以匹配内容布局。

    • Android 5.0及以后版本:使用

      setStatusBarColor()
      方法或修改
      colorPrimaryDark
      的颜色来设置状态栏颜色。

      getWindow().setStatusBarColor(Color.parseColor("#YOUR_COLOR"));
    • Android 4.4 ~ Android 5.0:虽然不能直接修改状态栏颜色,但可以通过设置状态栏透明,然后为内容布局添加一个合适颜色的padding来模拟状态栏颜色。

      getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
      // 在布局中为根布局或Toolbar设置padding和背景颜色
    • Android 4.4之前:不支持修改状态栏颜色。

    状态栏的适配主要关注上述两点,针对不同Android版本使用相应的方法,避免混用以防出现奇特效果。

效果图:

关于 Android 状态栏的适配总结Android4.4以下.png

白果AI论文
白果AI论文

论文AI生成学术工具,真实文献,免费不限次生成论文大纲 10 秒生成逻辑框架,10 分钟产出初稿,智能适配 80+学科。支持嵌入图表公式与合规文献引用

下载

关于 Android 状态栏的适配总结Android4.4透明no.png

LinearLayout使用

fitsSystemWindows
属性:

关于 Android 状态栏的适配总结Android4.4透明toolbar-yes.png

ToolBar设置

fitsSystemWindows
效果:

关于 Android 状态栏的适配总结Android4.4透明toolbar-yes.png

Android 5.0及以后版本的新增功能:

  • 可以直接操作状态栏颜色。

Android 6.0的新增功能:

  • 可以更改状态栏字体颜色。默认是白色,可以修改为黑色。

    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

关于

fitSystemWindows
方法

// 当insets视图插入,window已经更改了,视图层次结构调用。允许它调整内容来适应这些窗口。
fitSystemWindows(Rect insets);

此方法用于处理系统视图插入时对内容布局的影响,通常在使用

SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
时需要处理,以确保内容布局正确显示。

相关专题

更多
css中的padding属性作用
css中的padding属性作用

在CSS中,padding属性用于设置元素的内边距。想了解更多padding的相关内容,可以阅读本专题下面的文章。

133

2023.12.07

android开发三大框架
android开发三大框架

android开发三大框架是XUtil框架、volley框架、ImageLoader框架。本专题为大家提供android开发三大框架相关的各种文章、以及下载和课程。

274

2023.08.14

android是什么系统
android是什么系统

Android是一种功能强大、灵活可定制、应用丰富、多任务处理能力强、兼容性好、网络连接能力强的操作系统。本专题为大家提供android相关的文章、下载、课程内容,供大家免费下载体验。

1741

2023.08.22

android权限限制怎么解开
android权限限制怎么解开

android权限限制可以使用Root权限、第三方权限管理应用程序、ADB命令和Xposed框架解开。详细介绍:1、Root权限,通过获取Root权限,用户可以解锁所有权限,并对系统进行自定义和修改;2、第三方权限管理应用程序,用户可以轻松地控制和管理应用程序的权限;3、ADB命令,用户可以在设备上执行各种操作,包括解锁权限;4、Xposed框架,用户可以在不修改系统文件的情况下修改应用程序的行为和权限。

2013

2023.09.19

android重启应用的方法有哪些
android重启应用的方法有哪些

android重启应用有通过Intent、PendingIntent、系统服务、Runtime等方法。本专题为大家提供Android相关的文章、下载、课程内容,供大家免费下载体验。

267

2023.10.18

Android语音播放功能实现方法
Android语音播放功能实现方法

实现方法有使用MediaPlayer实现、使用SoundPool实现两种。可以根据具体的需求选择适合的方法进行实现。想了解更多语音播放的相关内容,可以阅读本专题下面的文章。

345

2024.03.01

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

0

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

11

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

85

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 12.5万人学习

Java 教程
Java 教程

共578课时 | 48.3万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 6.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号