【问题标题】:How to set status bar color in android如何在android中设置状态栏颜色
【发布时间】:2015-02-28 11:21:10
【问题描述】:

我使用下面的代码来设置状态栏颜色。将此代码放在 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 'colorPrimaryDark'。 如何解决?

【问题讨论】:

  • 显示你的build.gradle文件

标签: android statusbar


【解决方案1】:

您应该从android:colorPrimaryDark 中删除android 前缀

<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

【讨论】:

    【解决方案2】:

    StatusBar 不适用于 API 级别低于 21 的设备。如果您的最低 API 级别低于该级别,那么您必须在 java 源文件中进行一些更改。转到要添加状态栏颜色的源文件。然后用注解@TargetApi(Build.VERSION_CODES.LOLLIPOP) 包装OnCreate() 方法。

    然后在方法中你必须检查设备是否有能力,如下所示。

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
     window.setStatusBarColor(getResources().getColor(R.color.Statusbar));
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-06
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多