实现android状态栏的适配和样式调整需要根据不同的android版本采用不同的方法,以下是详细的说明和示例:
沉浸式状态栏:使内容布局延伸到系统状态栏,实现透明效果。
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
属性会导致奇特效果。
状态栏颜色与布局颜色搭配:不延伸内容布局到系统状态栏,只需调整状态栏颜色以匹配内容布局。
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版本使用相应的方法,避免混用以防出现奇特效果。
效果图:
Android4.4以下.png
BibiGPT-哔哔终结者
B站视频总结器-一键总结 音视频内容
28 查看详情
Android4.4透明no.png
LinearLayout使用
fitsSystemWindows
属性:
Android4.4透明toolbar-yes.png
ToolBar设置
fitsSystemWindows
效果:
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 状态栏的适配总结的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/592612.html
微信扫一扫
支付宝扫一扫