如何更改操作栏右侧溢出菜单中的图标,如下图所示?我的Holo主题默认指定了这个三行黑色堆叠图标,但我想要其他的图标。我似乎找不到解决方案。我查看了关于http://developer.android.com/guide/topics/ui/menus.html的文档,但它并没有提供太多帮助。
谢谢!
如何更改操作栏右侧溢出菜单中的图标,如下图所示?我的Holo主题默认指定了这个三行黑色堆叠图标,但我想要其他的图标。我似乎找不到解决方案。我查看了关于http://developer.android.com/guide/topics/ui/menus.html的文档,但它并没有提供太多帮助。
谢谢!
你可以尝试像这样:
<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" >
定义一个自定义样式:例如,我们称其为customoverflow
。
在此样式中,您将android:src
设置为您想要使用的图片。现在创建一个父样式为Theme.holo
的样式。
在此样式中,您需要定义:
<item name="android:actionOverflowButtonStyle">@style/customoverflow</item>
我刚刚测试了这个,它有效。
<style name="MyTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionOverflowButtonStyle">@style/ActionButtonOverflow</item>
<!-- Support library compatibility -->
<item name="actionOverflowButtonStyle">@style/ActionButtonOverflow</item>
</style>
<style name="ActionButtonOverflow" parent="@style/Widget.AppCompat.ActionButton.Overflow">
<item name="android:src">@drawable/ic_launcher</item>
</style>
并且在 androidmanifest.xml 文件中
<application
android:theme="@style/MyTheme" >
<style name="AppThemeLight" parent="android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBar</item>
<item name="android:windowContentOverlay">@drawable/actionbar_shadow</item>
</style>
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/header_brown</item>
<item name="android:titleTextStyle">@style/ActionBarTitle</item>
<item name="android:icon">@drawable/header</item>
</style>
Change your custom overflow icon of Actionbar in 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>
Put custom theme "MyTheme" in application tag of AndroidManifest.xml
<application
android:name="com.example.android.MainApp"
android:theme="@style/AppTheme">
</application>
玩得开心。@.@
res/values-vXX/styles.xml
中,而与向后兼容性相关的自定义可以放在 values/styles.xml
中。res/values-vXX/styles.xml
和 res/values/styles.xml
中,这将像魔术一样工作!<style name="AppTheme" 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/your_overflow_icon</item>
</style>
同时在 AndroidManifest.xml 文件中添加它
<application
android:theme="@style/AppTheme" >
Shalafi的解决方案可以工作,但需要进行一些更改!您需要将theme.Holo指定为主题的父级,但它的缺点是会更改默认文本颜色(至少在我的样式中)。
修改后的代码应该是:
<style name="AppThemeLight" parent="android:style/Theme.Holo">
<item name="android:actionBarStyle">@style/ActionBar</item>
<item name="android:windowContentOverlay">@drawable/actionbar_shadow</item>
</style>
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/header_brown</item>
<item name="android:titleTextStyle">@style/ActionBarTitle</item>
<item name="android:icon">@drawable/header</item>
</style>
<style name="ToolBarTheme" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="android:tint">@color/colorAccent</item>
创建上述主题。使用您的颜色设置色调,并将此主题添加到工具栏。
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ToolBarTheme"/>