Lollipop和Pre Lollipop设备的工具栏TextColor和溢出菜单颜色问题

时间:2015-09-03 19:35:12

标签: android android-toolbar

风格

 <style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/my_primary_color</item>
    <item name="colorPrimaryDark">@color/my_primary_dark_color</item>
    <item name="colorAccent">@color/accent</item>
</style>

布局

 <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout>

通过应用上述主题android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

AppBar中,工具栏TextColor和工具栏项目在棒棒糖中为白色,在棒棒糖前为黑色。

棒棒糖

enter image description here

前棒棒糖

enter image description here

通过应用以下主题app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

Lollipop和棒棒糖前设备中的工具栏Textcolor和溢出图标变黑。

 <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout>

棒棒糖

enter image description here

前棒棒糖

enter image description here

如何让Toolbar TextColor和OverFlow Menu图标颜色变为白色?正如您在上面的代码中所看到的,我使用了

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

但它没有成功。任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:4)

这对我有用!

<style name="AppTheme.WithoutActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="colorPrimaryDark">@color/titleBarColor</item>
    <item name="colorPrimary">@color/actionBarColor</item>\
    <item name="colorAccent">@color/colorAccent</item>

    <item name="colorControlActivated">?attr/colorAccent</item>
    <item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
    <item name="android:textColorSecondary">@android:color/white</item>
    <item name="actionMenuTextColor">@android:color/white</item>
    <item name="colorControlNormal">@android:color/white</item>
</style>

在清单中!

<activity
        android:name=".MainActivity"
        android:theme="@style/AppTheme.WithoutActionBar"/>

答案 1 :(得分:1)

您似乎忘了将cout<<si->board[i]<<" ";应用于ThemeOverlay本身(我不确定它是否适用于Toolbar,上次检查时,在支持lib中它只适用于AppBarLayout Toolbar

因此,请将此属性添加到<android.support.v7.widget.Toolbar>

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

它应该全部到位,不需要额外的文本颜色调整。

答案 2 :(得分:0)

强制标题,副标题,actiobar,工具栏等颜色的最佳方法是使用html代码。

actionBar.setTitle(Html.fromHtml("<font color='#FFFFFF'>ActionBarTitle </font>"));

对其他标题也一样。这样,使用哪个主题或SDK并不重要,它始终是白色的。

答案 3 :(得分:0)

制作自己的文字样式并将其设置为Tollbar

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        [...]
        app:titleTextAppearance="@style/AppTheme.Toolbar.Title.MyStyle" />

式:

<style name="AppTheme.Toolbar.Title.MyStyle" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">

    <!-- Set title color -->
    <item name="android:textColor">@color/toolbar_title</item>
</style>

答案 4 :(得分:0)

styles.xmltheme.xml的值和值-v21文件夹中添加以下这些行

<style name="AppTheme.Base" parent="Theme.AppCompat.Light">
        <item name="colorPrimary">@color/my_primary_color</item>
        <item name="colorPrimaryDark">@color/my_primary_dark_color</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:titleTextStyle">@android:color/white</item>
        <item name="actionMenuTextColor">@android:color/holo_blue_dark</item>
        <item name="android:actionMenuTextColor">@android:color/white</item>         
        <item name="android:textColorSecondary">@android:color/white</item>
    </style>