Answers:
您可以使用样式,但是必须将其添加到主Theme声明中。
<resources>
<!-- Base application theme. -->
<style name="Your.Theme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style ***MUST*** go here or it will not work -->
<item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>
<!-- Styles -->
<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_action_overflow</item>
</style>
</resources>
您还可以动态更改它,我在这里详细介绍:
parent="Widget.Sherlock.ActionButton.Overflow"
parent="@style/Widget.AppCompat.ActionButton.Overflow"
似乎对我有用 。
对于那些无法使它正常工作的人,请尝试此操作而无需使用“ android:”命名空间。
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
在styles.xml中更改操作栏的自定义溢出图标。
<resources>
<!-- Base application theme. -->
<style name=“MyTheme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style DONT forget! -->
<item name="android:actionOverflowButtonStyle">@style/MyOverFlow</item>
</style>
<!-- Styles -->
<style name="MyOverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_your_action_overflow</item>
</style>
</resources>
将自定义主题“ MyTheme”放入AndroidManifest.xml的应用程序标记中
<application
android:name="com.example.android.MainApp"
android:theme="@style/AppTheme">
</application>
玩得开心。@。@
无论我尝试做什么styles.xml
,都没有一种解决方案适合我。最后,如果您拥有应有的AppCompat 23+,则这是实际可行的最简单方法:
toolbar.setOverflowIcon(drawable);
@adneal的答案是正确的(因此,这只是社区维基的解释)。
其中一条评论建议您可能对如何执行此操作有误解,因此我的回答只是关于如何覆盖“溢出”图标图像的另一个示例。
以下代码基于ADT示例“新建Android项目”中的模板样式。该代码来自styles.xml
文件res/values
夹中的文件。
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>
<style name="OverflowMenuButton" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_menu_moreoverflow</item>
</style>
上面的代码所做的是用您拥有的任何可绘制对象替换默认的溢出图标ic_menu_moreoverflow
。如果您想要一种快速的测试方法,请使用应用程序的启动器图标文件名,这将使其变得显而易见。
尝试了解ActionBar
样式时要使用的有用资源是:
您可以在此处定义用于“溢出”图标的特定颜色,并且ZIP文件将包含styles.xml
适合您的正确文件。
对于溢出图标的颜色更改,您只需添加
toolbar.setOverflowicon(getDrawable(R.id.whiteIcon));
要么
toolbar.setOverflowicon(getDrawable(R.id.redIcon));
它将更改图标,选择所需的任何颜色并将其设置为Overflowicon。
经过长时间的搜索,我得到了如下指导:
在theme.xml中的主题内添加项目:
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item>
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
将样式中的图标添加到同一文件中,我的意思是theme.xml:
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/icon_menu</item>
</style>
签出您想要更改的自定义图标
对我有用