【问题标题】:Android actionbar customization does not change colorAndroid actionbar自定义不变色
【发布时间】:2020-10-12 18:27:09
【问题描述】:

我正在尝试在我的 android 应用程序中自定义操作栏。以下是我的styles.xml

<style name="MyTheme" parent="Theme.AppCompat.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="Widget.AppCompat.Light.ActionBar">
    <item name="backgroundColor">#000000</item>
</style>

我有

    <activity android:name=".MainActivity"
              android:theme="@style/MyTheme">

在我的AndroidManifest.xml.

我的期望是这应该将操作栏变成黑色。但是,这不会发生,操作栏保持白色。如果有任何关于为什么我的期望与现实不符的指示,我将非常高兴。如果需要,我很乐意提供更多详细信息。

【问题讨论】:

  • 尝试&lt;item name="android:background"&gt;#000000&lt;/item&gt; 代替backgroundColor
  • 我试过了,操作栏还是白的。

标签: android android-layout android-actionbar android-styles


【解决方案1】:

如果您使用的是ActionBar,您可以在应用主题中使用actionBarStyle 属性:

 <style name="AppTheme" parent="Theme.AppCompat.Light">
      <item name="actionBarStyle">@style/MyActionBar</item>
 </style>

  <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
       <item name="background">#000000</item>
  </style>

您也可以使用 actionBarTheme 属性:

  <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
     <item name="actionBarTheme">@style/ThemeOverlay.ActionBar</item>
  </style>


  <style name="ThemeOverlay.ActionBar" parent="">
        <item name="colorPrimary">#000000</item>
  </style>

【讨论】:

  • actionBarTheme 创造了奇迹。但是,我仍然无法让actionBarStyle 工作。如果我复制您的第一个代码块,编译器会抱怨名为 background 的项目不应将原始字符串作为参数,并且在我的原始代码块中,操作栏变为白色。为什么会这样?
  • @bvdhen 尝试使用@color/black 之类的引用。您在布局中使用Toolbar 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多