Android: API 21以下如何更改状态栏颜色

17

我试图为API级别低于21的设备更改状态栏颜色。通过在主题样式中更改primary颜色,我们可以在API级别21上更改状态栏颜色。

Playstore

我正在寻找如何更改较低版本的状态栏颜色

请问有人可以帮助我吗?

4个回答

15

从Android 5.0(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>

状态栏的背景色将变为透明色,如果想要改变它的颜色,只需要在应用程序中添加一个背景色,状态栏就会采用该颜色。

希望以上内容清晰易懂并对您有所帮助。


3
好的,我该如何改变它的颜色而不是半透明? - RoCkDevstack

4

从Lollipop版本开始,才有更改状态栏颜色的功能。低版本的操作系统没有此功能。在Lollipop版本之前的设备上,无法更改状态栏颜色。


我不同意这个,那这个库怎么样?https://github.com/jgilfelt/SystemBarTint - ʍѳђઽ૯ท
这并不完全像材料设计。我们只能创建半透明状态栏。而且只能在API>=19中完成。 - Jayakrishnan Salim

3

截至目前,最新版的AppCompat v7:23.1.0仍不支持状态栏着色。

请查看Android开发者博客文章

从这篇文章中可以了解到:

在旧平台上,AppCompat尽可能地模拟颜色主题。目前,这种方法只能着色操作栏和一些小部件。

这意味着AppCompat库只能为Lollipop及以上版本的设备着色状态栏。


你会想。叹气。有时候谷歌做的设计选择令人费解。他们在那里抽什么烟? - TheRealChx101

0

<< 这可能不是最好的解决方案(但可能是唯一的),但它能够工作 >>

在 API 等级 v21 以下,您可以通过更改 styles.xml 文件和正在使用的 主题 内部的 colorPrimaryDark(有时为colorPrimary)属性来更改状态栏颜色。

现在,这对您来说可能可行,也可能不可行,甚至可能看起来像黑客或者对您来说很明显。但我在此发布它,因为它对我很有效,而且我从未使用过 colorPrimary 或 colorPrimaryDark,所以我没有遇到什么问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接