实现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)
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
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 状态栏的适配总结的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号