任何人都可以请我解释一下,即使我创建了另一种样式,为什么我的工具栏也不会改变其颜色:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">false</item>
</style>
将其添加到清单文件中,例如:
<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>
并尝试更改工具栏,例如:
Toolbar toolbar = new Toolbar(this);
toolbar.setBackgroundColor(getResources().getColor(R.color.light_blue));
setSupportActionBar(toolbar);
但仍然得到
This Activity already has an action bar supplied by the window decor.
Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to
false in your theme to use a Toolbar instead.
我什至试图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>
基本上,我想要保留我的全局主题,只是在其中一项活动中更改工具栏颜色.这就是为什么我没有在xml文件中创建工具栏,而是以编程方式创建它,添加背景色并想要进行设置的原因.
解决方法:
您需要在元数据标签外起飞android:theme =“ @ style / AppTheme.NoActionBar”:
<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>
并在Java代码中:
Toolbar toolbar = (Toolbar) findViewById(R.id.yourToolbarId);
toolbar.setBackgroundColor(getResources().getColor(R.color.light_blue));
setSupportActionBar(toolbar);