【问题标题】:How can I change the background colour of my Action Bar (Material Design)?如何更改我的操作栏(材料设计)的背景颜色?
【发布时间】:2016-10-22 16:10:09
【问题描述】:

我希望我的操作栏具有值为 @color/colorPrimary(最后一项)的背景,但在我的应用程序中,操作栏采用与我的背景相同的颜色。看起来它们都是 1 元素。如何设置我的操作栏的样式(字体、背景……)?我不必动态设置它的样式,它会在整个活动中保持相同的颜色。

<resources>
    <style name="AppTheme" parent="android:Theme.Material">
        <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="android:colorPrimary">@color/colorPrimary</item>
        <item name="android:background">@color/background</item> **BACKGROUND**
        <item name="android:actionBarStyle">@color/colorPrimary</item> **ACTION BAR**
    </style>
</resources>

颜色.xml

<resources>
    <color name="colorPrimary">#E91E63</color>
    <color name="colorPrimaryDark">#880E4F</color>
    <color name="colorAccent">#E91E63</color>
    <color name="background">#FCE4EC</color>
</resources>

我的操作栏没有应用我想要的颜色。

【问题讨论】:

  • ActionBar 获取 colorPrimary 作为它的颜色
  • 转到color.xml 并更改colorPrimary 或更改style.xml
  • 你的两个建议我都做了,还是不行……

标签: android android-actionbar material-design


【解决方案1】:

试试这个sn-p的代码

   <resources>
        <!-- Base application theme. -->
        <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!-- Customize your theme here. -->
 <item name="android:statusBarColor">@color/colorPrimaryDark</item>
            <item name="colorPrimary">@color/color_primary</item>
            <item name="colorPrimaryDark">@color/color_primary_dark</item>
            <item name="colorAccent">@color/accent_color</item>
        </style>
    </resources>

来自 Java:

requestWindowFeature(Window.FEATURE_ACTION_BAR);
    getActionBar().setBackgroundDrawable(
            new ColorDrawable(Color.parseColor("#1e8d93")));

【讨论】:

  • 其实我想应用 Material 主题,而不是 AppCompat 主题
  • @Helenesh,试试这个 - getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#1e8d93")));
  • 是的,即使使用您的代码,我的操作栏的背景颜色也不会改变(我想为 colorPrimary 着色)。如果您愿意,请随时查看我在 Github 上的代码 github.com/heleneshaikh/popular_movies_udacitiy.git
  • 尝试从代码设置Actionbar并设置BG...检查代码
  • 我找到了解决方案:@color/colorPrimaryDark 我想知道为什么人们给我负分,因为这是一个非常有用的问题供以后参考!在对材料设计进行了大量研究后,我找到了解决方案;-) 感谢您的帮助 Sreekanth!
【解决方案2】:

在您的应用主题中使用android:background 不是一个好主意,因为这会将背景颜色应用于所有 视图,包括操作栏。而是使用android:windowBackground 来设置活动的窗口背景颜色。

【讨论】:

    【解决方案3】:

    你可以这样设置它的颜色:

    ActionBar ab = getSupportActionBar();
    
    if(ab != null) {   
        ab.setBackgroundDrawable(new ColorDrawable(Color.RED));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 2015-03-31
      • 2014-11-22
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      相关资源
      最近更新 更多