无法更改工具栏的颜色

Eln*_*oor 3 java android toolbar android-actionbar

任何人都可以请解释一下,为什么即使我创建了另一种样式,我的工具栏也不会改变其颜色:

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

将它添加到我的清单文件中,例如:

<activity
    android:name=".SettingsActivity"
    android:label="@string/title_activity_settings"
    android:parentActivityName=".MainActivity">
    <meta-data
        android:theme="@style/AppTheme.NoActionBar"
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.com.com.com.MainActivity" />
</activity>
Run Code Online (Sandbox Code Playgroud)

并尝试更改工具栏,例如:

Toolbar toolbar = new Toolbar(this);
toolbar.setBackgroundColor(getResources().getColor(R.color.light_blue));
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)

但仍然得到

这个 Activity 已经有一个由窗口装饰提供的操作栏。不要在主题中请求 Window.FEATURE_ACTION_BAR 并将 windowActionBar 设置为 false 以使用工具栏。

我什至尝试过,getSupportActionBar().hide();但仍然无法正常工作。

XML :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.com.com.com.SettingsActivity"
    android:id="@+id/settings_activity">
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

基本上,我想要的是保留我的全局主题,并在其中一项活动中更改工具栏颜色。这就是为什么我不在 xml 文件中创建工具栏,而是以编程方式创建它,添加背景颜色并想要设置它。

Moh*_*uag 5

你需要android:theme="@style/AppTheme.NoActionBar"meta-data标签外起飞:

  <activity
        android:name=".SettingsActivity"
        android:label="@string/title_activity_settings"
        android:theme="@style/AppTheme.NoActionBar"
        android:parentActivityName=".MainActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="net.noorr.menote.menote.MainActivity" />
    </activity>
Run Code Online (Sandbox Code Playgroud)

在java代码中:

Toolbar toolbar = (Toolbar) findViewById(R.id.yourToolbarId);
toolbar.setBackgroundColor(getResources().getColor(R.color.light_blue));
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)