更改ActionBar上溢出按钮的颜色

Gau*_*rav 55 android android-actionbar

是否可以更改操作栏上的溢出按钮(3个垂直点)的颜色?如果是这样,我们该怎么做?我没有找到溢出按钮的任何样式.

谢谢

XGo*_*het 67

您可以使用以下样式声明更改用于它的图像.

<style name="MyCustomTheme" parent="style/Theme.Holo">
    <item name="android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item>
</style>

<style name="MyCustomTheme.OverFlow">
    <item name="android:src">@drawable/my_overflow_image</item>
</style>
Run Code Online (Sandbox Code Playgroud)

如果你正在使用ActionBarSherlock,这里是如何做到的

<style name="MyCustomTheme" parent="style/Theme.Sherlock">
    <item name="android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item>
    <item name="actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item>
</style>

<style name="MyCustomTheme.OverFlow">
    <item name="android:src">@drawable/my_overflow_image</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • 要保留默认溢出按钮设置(例如高度/宽度,触摸覆盖图形)并仅更改图标图像,请将父项添加到自定义溢出样式:`parent ="@ android:style/Widget.ActionButton.Overflow" ` (13认同)
  • 由于某些原因,对于我来说,使用目标sdk 15无法运行,在Galaxy Nexus(JellyBean)上运行.三点菜单按钮保持不变. (5认同)
  • 那么在没有添加全新图像的情况下,无法更改"..."图标的颜色? (2认同)
  • 如果您不想更改图像,请查看http://stackoverflow.com/questions/35932669/how-do-i-change-the-action-bar-overflow-button-color (2认同)

Pet*_*fin 21

其中一些答案严重矫枉过正,有些答案有限.答案要简单得多.您可以随时将其设置为您想要的任何颜色.这里:

toolbar.getOverflowIcon().setColorFilter(colorInt, PorterDuff.Mode.SRC_ATOP);
Run Code Online (Sandbox Code Playgroud)

  • 杰出的!经过几个小时的搜索,它起作用了。代替 `colorInt` 使用 `ContextCompat.getColor(this, R.color.gray)`。 (4认同)
  • 我按以下方式使用了“setTint”,现在“setColorFilter”已被弃用:“.setTint(ContextCompat.getColor(this, R.color.red))” (3认同)
  • [这个](/sf/ask/1875192511/#comment57980762_27517878)是正确的做法它。它也会改变后退按钮的颜色。 (2认同)

小智 20

XGouchet的答案很棒,但只是想补充一点,如果从现有的样式继承,你将获得标准填充,选择状态等.

<style name="MyCustomTheme.OverFlow" parent="Widget.Sherlock.ActionButton.Overflow">
    <item name="android:src">@drawable/title_moreicon</item>
</style>
Run Code Online (Sandbox Code Playgroud)


not*_*guy 9

如果您使用的是AppCompat,则可以使用android:textColorSecondary设置为所需颜色的属性派生新的自定义样式,并将其用作工具栏的主题. Android:更改工具栏的文本颜色和溢出图标颜色

  • 如果你想在没有太大惊小怪的情况下改变点颜色,这在我眼中是实际的方法! (2认同)

jos*_*jos 7

其他以编程方式选择:

        Drawable drawable = toolbar.getOverflowIcon();
        if(drawable != null) {
            drawable = DrawableCompat.wrap(drawable);
            DrawableCompat.setTint(drawable.mutate(), getResources().getColor(R.color.thecolor));
            toolbar.setOverflowIcon(drawable);
        }
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!