所有活动上的工具栏颜色相同

时间:2015-12-17 07:52:55

标签: android background-color

在我的应用程序中,我有3 activities,每个activity都有相同的Toolbar,其中包含自定义样式(背景颜色为蓝色)。

来自Activity-A用户可以更改toolbar的背景颜色(从蓝色变为红色)。它在Activity-A的{​​{1}}上正常运行,但当我从toolbar Activity-B Activity-A前往toolbar时,前一个颜色(背景颜色为蓝色而不是红色) )。

我的toolbar是:

<android.support.v7.widget.Toolbar 
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:local="http://schemas.android.com/apk/res-auto"
      android:id="@+id/toolbar"
      android:theme="@style/myToolbarTheme"
      android:layout_width="match_parent"
      android:layout_height="48dp"
      android:padding="0dp">
 </android.support.v7.widget.Toolbar>

自定义样式是:

 <style name="myToolbarTheme">
    <item name="android:background">@color/themeBlue</item>
</style>

使用

更改工具栏的背景颜色
     toolbar.setBackgroundColor(getResources().getColor(R.color.themeRed)); 

所以我的问题是,如何在每个活动的工具栏上设置相同的颜色?请建议我。

谢谢

3 个答案:

答案 0 :(得分:1)

您可以在风格中使用颜色主要

<item name="android:colorPrimary">@color/primary</item>

enter image description here

更多参考here

答案 1 :(得分:0)

我认为您应该再创建一项活动BaseActivity(扩展Activity
您的所有活动(在本例中为3)将延伸BaseActivity
然后,您将编写代码以更改BaseActivity中的工具栏颜色 最后,在每个子活动上,调用BaseActivity

中更改工具栏颜色的代码

答案 2 :(得分:0)

 <style name="Base.Theme.DesignDemo" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/ColorPrimary</item>
        <item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
        <item name="colorAccent">#FF4081</item>
        <item name="android:windowBackground">@color/window_background</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>

    </style>

申请工具栏

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_questions_map"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@style/Theme.DesignDemo"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:background="@color/ColorPrimary">
    </android.support.v7.widget.Toolbar>