ActionBarCompat下拉菜单上的样式单选按钮

时间:2014-02-24 10:42:54

标签: android android-actionbar android-actionbar-compat

我正在开发一个使用扩展@style/Theme.AppCompat.Light.DarkActionBar的主题的应用。

在我的一项活动中,有一个Action Bar图标,显示了radiobuttons的三个选项(这里是菜单XML文件的摘录):

<item
    android:icon="@drawable/ic_action_filter_white"
    android:showAsAction="always"
    android:title=""
    preparatest:showAsAction="always">
    <menu>
        <group android:checkableBehavior="single" >
            <item
                android:id="@+id/menu_filter_all"                    
                android:title="@string/history_list_filter_all"
                android:checked="true"/>
            <item
                android:id="@+id/menu_filter_pending"
                android:title="@string/history_list_filter_pending"/>
            <item
                android:id="@+id/menu_filter_finished"
                android:title="@string/history_list_filter_finished"/>
        </group>
    </menu>
</item>

我想给这些radiobutton一个自定义样式,但我不知道在哪里做。在我的styles.xml文件中,我将自定义样式定义为

<style name="RadioButtonPTGreenTheme" parent="android:Widget.CompoundButton.RadioButton">
    <item name="android:button">@drawable/ptgreentheme_btn_radio_holo_light</item>
</style>

尝试使用所有这四个选项,但无济于事:

<item name="android:radioButtonStyle">@style/RadioButtonPTGreenTheme</item>

<item name="android:listChoiceIndicatorSingle">@style/RadioButtonPTGreenTheme</item>

<item name="android:radioButtonStyle">@drawable/ptgreentheme_btn_radio_holo_light</item>

<item name="android:listChoiceIndicatorSingle">@drawable/ptgreentheme_btn_radio_holo_light</item>

有谁知道怎么做?谢谢!

1 个答案:

答案 0 :(得分:1)

请参阅此blog post了解相关方法。

长话短说,android:actionBarWidgetTheme用于设置依赖于操作栏的元素的样式,因此android:radioButtonStyle应该放在actionBarWidgetTheme的样式中:

<style name="MyTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarWidgetTheme">@style/MyActionBarWidgetTheme</item>
</style>

<style name="MyActionBarWidgetTheme" parent="@android:style/Theme.Holo">
    <item name="android:radioButtonStyle">@style/MyRadioButtonStyle</item>
</style>