如何更改操作栏溢出按钮颜色

bit*_*ock 9 android

首先,我已阅读动作栏上溢出按钮的更改颜色,但我无法使其工作.

我只是想有一个简单的主题:动作栏背景蓝色和按钮和文本白色.对于我所拥有的列表视图,我希望它们是相反的:白色背景和蓝色文本.如果有一个简单的方法来实现这一点,请告诉我.我尝试使用样式设置文本颜色,但我无法将文本和按钮设置为不同的颜色,所以我尝试设置溢出drawable并且为了测试目的,我将点设置为红色但看不到任何效果.

    <!-- Application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/ActionBarStyle</item>
</style>

<style name="ActionBarStyle" parent="Widget.AppCompat.ActionBar">
    <item name="background">@color/background_blue</item>
    <item name="titleTextStyle">@style/AppTheme.ActionBar.Title</item>
    <item name="actionOverflowButtonStyle">@style/AppTheme.ActionButton.Overflow</item>
</style>

<style name="AppTheme.ActionBar.Title" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white</item>
</style>

<style name="AppTheme.ActionButton.Overflow"  parent="@style/Widget.AppCompat.ActionButton.Overflow">
    <item name="android:src">@drawable/abc_ic_menu_overflow_button</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我正在用于测试的溢出按钮 我正在用于测试的溢出按钮

虽然我看到了什么

我所看到的

显然没有使用红色按钮.

我能够使用android:textColorPrimary属性但是有不良副作用.

    <style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="android:textColorPrimary">@color/white</item>
    <item name="actionBarStyle">@style/ActionBarStyle</item>
</style>

<style name="ActionBarStyle" parent="Widget.AppCompat.ActionBar">
    <item name="background">@color/background_blue</item>
    <item name="titleTextStyle">@style/AppTheme.ActionBar.Title</item>
</style>

<style name="AppTheme.ActionBar.Title" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是因为我希望我的列表有白色背景,所以我最终无法看到一些文字,因为文字和背景都是白色的.

谢谢!

bit*_*ock 25

我发现了另一种方法,不需要更换图像!

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="actionBarTheme">@style/AppTheme.ActionBarTheme</item> <!-- used for the back arrow on the action bar -->
</style>

<style name="AppTheme.ActionBarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar">
    <!-- THIS is where you can color the arrow and the overflow button! -->
    <item name="colorControlNormal">@color/splash_title</item> <!-- sets the color for the back arrow -->
    <item name="OverflowButtonStyle">@style/overflowButtonStyle</item> <!-- sets the style for the overflow button -->
</style>

<!-- This style is where you define the tint color of your overflow menu button -->
<style name="actionOverflowButtonStyle" parent="@style/Widget.AppCompat.ActionButton.Overflow">
    <item name="android:tint">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • 如果你在编辑你过时的答案时至少归功于我,那就太好了. (3认同)

Mik*_*off 14

android:textColorSecondary对我不起作用.所以我尝试着色溢​​出样式:

<style name="DotsDarkTheme" parent="@style/Widget.AppCompat.ActionButton.Overflow" >
    <item name="android:tint">@color/yourLightColor</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后在你的风格中使用它:

  <style name="YourDarkAppTheme">

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>

    ... your appTheme


    <item name="actionOverflowButtonStyle">@style/DotsDarkTheme</item>


  </style>
Run Code Online (Sandbox Code Playgroud)

(我已经回答了这一主题:更改操作栏设置图标的颜色 ,但一个答案搜索时,这是我在谷歌第一击)


Cri*_*yos 6

有一种方法可以更容易地解决它,例如,如果我们想要标题字母的白色和工具栏的图标,我们可以这样做:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    android:theme="@style/MainMenu"
    app:popupTheme="@style/android:Theme.Holo.Light"/>
Run Code Online (Sandbox Code Playgroud)

在styles.xml文件中我们可以这样做:

<style name="MainMenu" parent="Theme.AppCompat.NoActionBar">
    <item name="android:textColorSecondary">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这会android:textColorSecondary更改工具栏中图标的颜色.


Jay*_* RJ 5

在主主题中添加 actionOverflowButtonStyle。

<style name="AppTheme" parent="Theme.AppCompat.Light">
 <item name="actionBarStyle">@style/ActionBarStyle</item>
 <item name="actionOverflowButtonStyle">@style/AppTheme.ActionButton.Overflow</item>
</style>
Run Code Online (Sandbox Code Playgroud)

完成。