不使用工具栏的自定义文本颜色

时间:2016-09-01 11:27:28

标签: android android-appcompat android-toolbar android-styles

我正在尝试在我的应用中自定义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"。在我的活动中,我添加了带代码的操作栏

<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或其他。

5 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为您的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>

备注:

  1. 对于Toolbar主题,请使用ThemeOverlay代替Theme.AppCompat。相关 - When should one use Theme.AppCompat vs ThemeOverlay.AppCompat?
  2. 用您喜欢的任何颜色替换#FF0001。这是标题文字的颜色。

答案 1 :(得分:0)

也许你应该删除 actionBarTabTextStyle 来自AppTheme.NoActionBar

希望它会有所帮助...

答案 2 :(得分:0)

为什么不直接使用

<item name="android:textColor">@color/blue</item> 

在您的自定义MyActionBar样式定义中。

答案 3 :(得分:0)

而不是android: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

试一试。

Main

答案 4 :(得分:0)

您可以通过java代码

更改ActionBar文本和背景颜色

yourToolbar.setTitleTextColor(Color.WHITE); yourToolbar.setBackgroundColor(Color.YOUR_COLOR);