Android:API 级别低于 21 的状态栏颜色更改
Posted
技术标签:
【中文标题】Android:API 级别低于 21 的状态栏颜色更改【英文标题】:Android : status bar color change for API level below 21 【发布时间】:2016-03-09 04:32:08 【问题描述】:我正在尝试更改 API 级别低于 21 的状态栏颜色。通过更改主题样式中的主颜色,我们可以更改 API 级别 21 的状态栏颜色。
我正在寻找如何更改较低版本的状态栏颜色
谁能帮帮我?
【问题讨论】:
【参考方案1】:Lollipop 可以更改状态栏的颜色
但实际上您可以更改 Api >= 19 的状态栏颜色
value-v19的样式里面放
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="MaterialDrawerTheme.Light">
<!-- Customize your theme here. -->
<item name="android:windowNoTitle">true</item>
<item name="android:windowTranslucentStatus">true</item>
.....
</style>
</resources>
状态栏的背景色会变成透明色,为了给它着色,你只需在你的应用程序中添加一个背景色,这样状态栏就会采用该颜色
希望这是清晰和有用的
【讨论】:
这很好,我怎样才能改变它的颜色而不是半透明?【参考方案2】:更改状态栏颜色功能仅从 Lollipop 开始可用。较低的操作系统版本没有此功能。您无法更改棒棒糖前设备中的状态栏颜色。
【讨论】:
我不同意这个,这个库怎么样? github.com/jgilfelt/SystemBarTint 那不完全像材料设计。有了它,我们只能创建半透明的状态栏。并且只能在 API>=19 中完成。【参考方案3】:最新版本的AppCompat v7:23.1.0
也不支持状态栏着色。
看看Android developers blog post
来自帖子:
在旧平台上,AppCompat
尽可能模拟颜色主题。目前这仅限于为操作栏和一些小部件着色。
这意味着 AppCompat 库只会在 Lollipop 及更高版本上为状态栏着色。
【讨论】:
你会想的。 叹息。有时谷歌做出的设计选择令人费解。比如他们在那边抽什么烟?【参考方案4】:>
在 API lvl v21 以下,您可以通过更改 colorPrimaryDark(有时 colorPrimary ) 属性在 styles.xml 文件和您正在使用的 theme 内。
现在,这对您来说可能或许多不可行,它可能看起来像是一个 hack,甚至对您来说是显而易见的。但我只是在这里发布它,因为它对我有用,而且我真的没有使用 colorPrimary 或 colorPrimaryDark,所以我没有任何问题。
【讨论】:
以上是关于Android:API 级别低于 21 的状态栏颜色更改的主要内容,如果未能解决你的问题,请参考以下文章
调用需要 API 级别 21(让 camera2 在低于 21 的设备上运行?)[重复]
API 级别低于 9 的 android:filterTouchesWhenObscured 的类似物
针对特定 API 级别的自定义 Android/Flutter 版本