如何更改操作栏最右侧的“溢出菜单”图标,如下图所示?我的Holo主题默认指定这个3行黑色堆栈图标,我想要别的东西。我似乎找不到解决方案。我查看了http://developer.android.com/guide/topics/ui/menus.html上的文档,但它似乎没有提供太多帮助。
谢谢!
答案 0 :(得分:28)
您可以尝试这样的事情:
<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" >
答案 1 :(得分:19)
定义自定义样式:例如,我们称之为customoverflow
。
在此样式中,您将android:src
设置为您要使用的图片。
现在创建一个父Theme.holo
的样式。
在这种风格中你需要定义:
<item name="android:actionOverflowButtonStyle">@style/customoverflow</item>
我刚试过这个并且有效。
答案 2 :(得分:10)
如果您正在使用AppCompat,则可以通过以下代码来实现。
RES /值/的themes.xml
<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" >
答案 3 :(得分:3)
我注意到如果应用程序的主题是Holo,它会变成白色,但是当主题是Holo.Light
时它会变黑。但是,将操作栏的样式更改为从Holo继承并从Holo.Light继承应用程序的其余部分并不能解决问题,但它应该指向您应该修改哪种样式的方向。
我试过的是:
<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>
我有同样的问题,我认为这接近解决方案
答案 4 :(得分:0)
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>
答案 5 :(得分:0)
重复的问题, Changing overflow icon in the action bar
这是我的答案,如下所示,
在styles.xml中更改Actionbar的自定义溢出图标
<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>
玩得开心。@。@
答案 6 :(得分:0)
基本上,较新的API级别中提供的主题自定义设置可以放在res/values-vXX/styles.xml
中,而与向后兼容性相关的自定义设置可以values/styles.xml
Shalafi的解决方案可以添加一些功能:所以
将此代码添加到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" >
答案 7 :(得分:0)
<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"/>