自定义按下硬件按钮时弹出的Android Overflow菜单

时间:2014-04-21 00:55:46

标签: android android-actionbar optionmenu overflow-menu

我可以设置从操作栏弹出的溢出菜单,但是我无法设置从硬件菜单按钮弹出的溢出菜单。

我对菜单中项目的选择器样式感兴趣。

欢迎任何想法?

1 个答案:

答案 0 :(得分:2)

要自定义使用硬件菜单按钮显示的弹出菜单,您需要在应用主题中包含此项目:

<style name="CustomTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:itemBackground">@drawable/ab_item_selector</item>  
</style> 

您可以根据需要更改@style/Theme.AppCompat.LightHolo或其他内容)。然后,名为ab_item_selector的drawable可能是这样的:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- selected state -->
    <item 
        android:drawable="@drawable/item_selected" 
        android:state_selected="true"></item>
    <!-- pressed state -->
    <item 
        android:drawable="@drawable/item_pressed" 
        android:state_pressed="true"></item>
    <!-- normal state -->
    <item 
        android:drawable="@drawable/item_disabled"></item>
</selector> 

希望这会有所帮助。


更新

对于分隔线,我不确定但可能是:

<style name="CustomTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:dropDownListViewStyle">@style/CustomDropDown</item>
    <item name="dropDownListViewStyle">@style/CustomDropDown</item>
</style>

<style name="CustomDropDown" parent="@style/Widget.AppCompat.Light.ListView.DropDown">
    <item name="android:dividerHeight">1dip</item>
    <item name="android:divider">@drawable/dropdown_divider</item>
</style>