28

如何更改操作栏中溢出图标的颜色?

在此处输入图像描述

(最右边的图标)

4

6 回答 6

34

你可以使用这样的东西

<style name="MyTheme" parent="android:style/Theme.Holo.Light">
     <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
</style>

<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/my_action_bTutton_overflow</item>
</style>

在你的AndroidManifest.xml

<application
    android:theme="@style/MyTheme" >

如果你想改变 actionBar 颜色 @style/MyActionBar

        <!-- Support library compatibility -->
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@color/app_theme_color</item>

        <!-- Support library compatibility -->
        <item name="background">@color/app_theme_color</item>
        <item name="android:alwaysDrawnWithCache">true</item>
        <item name="android:displayOptions">showTitle|showHome|homeAsUp</item>
        <item name="android:icon">@android:color/transparent</item>
    </style>

然后在你的标签中,AndroidManifest.xml你需要引用这个。application

    android:theme="@style/CustomActionBarTheme"
于 2013-04-16T11:54:40.487 回答
23

如果你只是想改变颜色,你可以简单地着色它:

  <style name="DotsDarkTheme" parent="@style/Widget.AppCompat.ActionButton.Overflow" >
    <item name="android:tint">@color/yourColor</item>
  </style>

然后以您的风格使用它:

 <item name="actionOverflowButtonStyle">@style/DotsDarkTheme</item>
于 2017-08-16T12:35:41.570 回答
12

如果您使用的是操作栏,请使用:

        toolbar.getOverflowIcon().setColorFilter(Color.WHITE , PorterDuff.Mode.SRC_ATOP);
于 2019-05-24T23:42:26.357 回答
2

还值得补充的是,如果您只是想将溢出按钮更改为浅色或深色以配合您的操作栏颜色,则无需指定自定义图标即可完成。

对于深色按钮颜色,请将您的主题设置为:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item>
</style>

主题.全息.光

对于浅色按钮颜色添加 DarkActionBar:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item>
</style>

Theme.Holo.Light.DarkActionBar

如果像我一样,你想要一个浅色按钮的颜色,但你希望溢出菜单是浅色的,你可以执行以下操作:

<style name="MyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item>
    <item name="android:actionBarWidgetTheme">@style/MyTheme.ActionBarWidget</item>
</style>
<!-- This helps the PopupMenu stick with Light theme while the ActionBar is in Dark theme -->
<style name="MyTheme.ActionBarWidget"
    parent="android:Theme.Holo.Light">
    <item name="android:popupMenuStyle">@android:style/Widget.Holo.Light.PopupMenu</item>
    <item name="android:dropDownListViewStyle">@android:style/Widget.Holo.Light.ListView.DropDown</item>
</style>
于 2014-09-19T10:15:36.100 回答
0

您可以在菜单项中使用自定义样式,如下所示

<item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item>

像这样定义样式:

<style name="myCustomMenuTextApearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
        <item name="android:textColor">@android:color/primary_text_dark</item>
</style>

另请参阅更改选项菜单的背景颜色

Android:自定义应用程序的菜单(例如背景颜色)

于 2013-04-16T11:59:15.067 回答
-1

在styles.xml 中创建以下样式,父项作为ActionButton Overflow 小部件,然后在您用于显示工具栏的那个活动的样式中使用该主题。

Step-1) 为 actionButtonOverflow 创建样式

<style name="DotsDarkTheme" parent="@style/Widget.AppCompat.ActionButton.Overflow" >
        <item name="android:tint">your color</item>
</style>

步骤 2)在使用 actionBar 的活动中使用此样式

<style name="CustomMainActivityTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="actionOverflowButtonStyle">@style/DotsDarkTheme</item>
</style>
于 2018-07-27T03:57:28.050 回答