为什么我无法更改工具栏的背景颜色

时间:2017-06-29 15:06:16

标签: java android android-actionbar toolbar

我正在更改工具栏颜色:

MainActivity.xml

    <Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></Toolbar>

styles.xml

    <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:colorPrimary">#0000ff</item>
    <item name="android:colorPrimaryDark">#ff0000</item>
    <item name="android:textColorPrimary">#fff</item>
    </style>

和MainActivity.java

   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setActionBar(toolbar);

我可以改变颜色colorPrimaryDark和textColorPrimary但是不能改变colorPrimary,为什么?

我可以像这样更改工具栏颜色:

toolbar.setBackgroundColor(Color.parseColor("#0000ff"));

但是在删除setActionBar(工具栏)后也无法改变使用样式的原因;文字和标题溢出菜单消失了为什么?

4 个答案:

答案 0 :(得分:1)

来自XML

android:background:"your color"

来自代码

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);  
ActionBar actionBar = getSupportActionBar();

actionBar.setBackgroundDrawable(Color.parse("your color"));

答案 1 :(得分:0)

您可以从父主题名称

中删除NoActionBar

答案 2 :(得分:0)

把这些行

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
 setSupportActionBar(toolbar);
 ActionBar actionBar = getSupportActionBar();

            actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.colorPrimary)));

答案 3 :(得分:0)

使用此主题Theme.AppCompat.Light.NoActionBar代替