关于 Android 状态栏的适配总结

星夢妙者
发布: 2025-09-07 09:00:11
原创
702人浏览过

实现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

BibiGPT-哔哔终结者
BibiGPT-哔哔终结者

B站视频总结器-一键总结 音视频内容

BibiGPT-哔哔终结者 28
查看详情 BibiGPT-哔哔终结者

关于 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
登录后复制
时需要处理,以确保内容布局正确显示。

以上就是关于 Android 状态栏的适配总结的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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