未使用工具栏的自定义文本颜色
Toolbar's custom text color is not used
我正在尝试在我的应用程序中自定义 ActionBar。我想更改背景颜色和文字颜色。
我的styles.xml
如下:
<resources>
<!-- Base application theme. -->
<style name="AppTheme.NoActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/AppTheme.ActionBar</item>
</style>
<style name="AppTheme.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
<item name="android:background">@color/actionbar_background</item>
<item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
<!-- Support library compatibility -->
<item name="background">@color/actionbar_background</item>
<item name="titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="AppTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/actionbar_text_color</item>
</style>
</resources>
在我的 AndroidManifest.xml
中添加了 android:theme="@style/AppTheme.NoActionBar"
。在我的 activity 中,我添加了带有代码
的操作栏
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:theme="@style/AppTheme.ActionBar" />
结果我的操作栏颜色正确但文本颜色不正确。
怎么了?
注:
我使用的是 AppCompat,不是 Holo 或其他。
也许你应该删除
actionBarTabTextStyle
来自 AppTheme.NoActionBar
希望对您有所帮助...
为什么不直接用
<item name="android:textColor">@color/blue</item>
在您的自定义 MyActionBar 样式定义中。
我使用的是 android:theme
而不是 app:theme
,它对我有用。
试一试。
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/MyActionBar" /> <----------Here
您可以通过java代码更改ActionBar文本和背景颜色
yourToolbar.setTitleTextColor(Color.WHITE);
yourToolbar.setBackgroundColor(Color.YOUR_COLOR);
发生这种情况是因为您的 Toolbar
的主题设置为浅色,因此 Android 选择深色(黑色)文本颜色。
您需要将其更新为:
<style name="AppTheme.ActionBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="titleTextColor">#FF0001</item>
<item name="subtitleTextColor">#FF0001</item>
<!-- your other theme attributes -->
</style>
备注:
- 对于
Toolbar
主题,使用 ThemeOverlay
而不是 Theme.AppCompat
。相关 - When should one use Theme.AppCompat vs ThemeOverlay.AppCompat?,
- 用你喜欢的任何颜色替换
#FF0001
。这是标题文本的颜色。
我正在尝试在我的应用程序中自定义 ActionBar。我想更改背景颜色和文字颜色。
我的styles.xml
如下:
<resources>
<!-- Base application theme. -->
<style name="AppTheme.NoActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/AppTheme.ActionBar</item>
</style>
<style name="AppTheme.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
<item name="android:background">@color/actionbar_background</item>
<item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
<!-- Support library compatibility -->
<item name="background">@color/actionbar_background</item>
<item name="titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="AppTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/actionbar_text_color</item>
</style>
</resources>
在我的 AndroidManifest.xml
中添加了 android:theme="@style/AppTheme.NoActionBar"
。在我的 activity 中,我添加了带有代码
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:theme="@style/AppTheme.ActionBar" />
结果我的操作栏颜色正确但文本颜色不正确。
怎么了?
注: 我使用的是 AppCompat,不是 Holo 或其他。
也许你应该删除 actionBarTabTextStyle 来自 AppTheme.NoActionBar
希望对您有所帮助...
为什么不直接用
<item name="android:textColor">@color/blue</item>
在您的自定义 MyActionBar 样式定义中。
我使用的是 android:theme
而不是 app:theme
,它对我有用。
试一试。
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/MyActionBar" /> <----------Here
您可以通过java代码更改ActionBar文本和背景颜色
yourToolbar.setTitleTextColor(Color.WHITE); yourToolbar.setBackgroundColor(Color.YOUR_COLOR);
发生这种情况是因为您的 Toolbar
的主题设置为浅色,因此 Android 选择深色(黑色)文本颜色。
您需要将其更新为:
<style name="AppTheme.ActionBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="titleTextColor">#FF0001</item>
<item name="subtitleTextColor">#FF0001</item>
<!-- your other theme attributes -->
</style>
备注:
- 对于
Toolbar
主题,使用ThemeOverlay
而不是Theme.AppCompat
。相关 - When should one use Theme.AppCompat vs ThemeOverlay.AppCompat?, - 用你喜欢的任何颜色替换
#FF0001
。这是标题文本的颜色。