我已使用以下代码设置状态栏颜色。将此代码放在values-v21文件夹
下`
<style name="AppTheme" parent="android:Theme.Material">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:colorPrimaryDark">#263143</item>
<item name="android:colorAccent">@color/accent</item>
</style>
` 但它使得追随 错误:错误:找不到与给定名称匹配的资源:attr&#39; colorPrimaryDark&#39;。 怎么解决这个问题?
答案 0 :(得分:1)
您应该从android
android:colorPrimaryDark
前缀
<item name="colorPrimaryDark">#263143</item>
我们现在在所有平台上使用Toolbar / ActionBar的支持实现,这意味着我们不再阅读与操作栏相关的任何
android: attributes
。
来源:https://chris.banes.me/2014/10/17/appcompat-v21/#theming
此外,Theme.Material
仅适用于API 21.如果您希望它适用于较低的API,请改用AppCompat
主题。
材料主题仅适用于Android 5.0(API级别21)及更高版本。 v7支持库为某些小部件提供了主题和材料设计样式,并支持自定义调色板。
来源:https://developer.android.com/training/material/theme.html
答案 1 :(得分:0)
StatusBar不适用于API级别低于21的设备。如果您的最低API级别低于此级别,则必须对Java源文件进行一些更改。转到要添加状态栏颜色的源文件。然后使用注释OnCreate()
包装@TargetApi(Build.VERSION_CODES.LOLLIPOP)
方法。
然后在方法内部,您必须检查设备是否有能力,如下所示。
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setStatusBarColor(getResources().getColor(R.color.Statusbar));
}