带有工具栏的菜单中的单选按钮样式不起作用

Posted

技术标签:

【中文标题】带有工具栏的菜单中的单选按钮样式不起作用【英文标题】:Radio Button style in Menu with Toolbar not working 【发布时间】:2017-11-14 19:34:32 【问题描述】:

我已尝试使用此 answer 在工具栏菜单项的单选按钮上应用样式,但它不适用于我。我想为 MenuItem 中的单选按钮应用复选标记样式,因此请帮助我提供适当的指导。

Style.xml

<!-- Base application theme. -->
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimary</item>
        <item name="colorAccent">@color/colorPrimary</item>
        <item name="android:textColorPrimary">@android:color/black</item>
        <item name="windowActionModeOverlay">true</item>
        <item name="windowActionBarOverlay">true</item>
        <item name="android:windowActionBarOverlay">true</item>
        <item name="android:windowBackground">@color/activity_bg</item>
        <item name="android:windowDisablePreview">true</item>
        <item name="alertDialogTheme">@style/AlertDialogCustom</item>
        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
        <item name="android:actionBarWidgetTheme">@style/MyActionBarWidgetTheme</item>
        <item name="actionBarWidgetTheme">@style/MyActionBarWidgetTheme</item>
</style>

<style name="AppTheme" parent="AppTheme.Base">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
</style>

<style name="MyActionBarWidgetTheme" parent="android:Theme.Holo.Light">
        <!--<item name="android:listChoiceIndicatorMultiple">@drawable/radiobutton_selector_checkmark</item>-->
        <item name="android:radioButtonStyle">@style/Widget.RadioButton.CheckMark</item>
</style>

<style name="Widget.RadioButton.CheckMark" parent="Widget.AppCompat.CompoundButton.RadioButton">
        <item name="android:textColor">@android:color/holo_red_light</item>
        <item name="android:button">@drawable/radiobutton_selector</item>
        <item name="android:background">@drawable/radiobutton_selector</item>
</style>

这是输出

Menu.xml

<item
android:id="@+id/action_filter"
android:icon="@drawable/ic_action_filter_white_24dp"
android:orderInCategory="2"
android:title="@string/action_filter"
app:showAsAction="always">

<menu>
    <group android:checkableBehavior="single">

        <item
            android:id="@+id/filter_favorite"
            android:title="Favorites"
            android:checked="true"
            app:showAsAction="never"/>

        <item
            android:id="@+id/filter_myProject"
            android:title="My Projects"
            app:showAsAction="never"/>

        <item
            android:id="@+id/filter_completed"
            android:title="Completed"
            app:showAsAction="never"/>

        <item
            android:id="@+id/filter_all"
            android:title="All Projects"
            app:showAsAction="never"/>

    </group>
</menu>

【问题讨论】:

任何帮助将不胜感激。请帮帮我... 一切顺利?????? 【参考方案1】:

我知道这是一篇旧帖子,但如果有人正在寻找答案,这里有一个关于如何做的链接(详细信息在最后):https://www.zoftino.com/android-ui-control-radiobutton

你必须使用selector

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/radio_checked" />
    <item android:drawable="@drawable/radio_unchecked" />
</selector>

drawable/radio_checkeddrawable/radio_unchecked 是你的假复选框。

【讨论】:

以上是关于带有工具栏的菜单中的单选按钮样式不起作用的主要内容,如果未能解决你的问题,请参考以下文章

颤动中的单选按钮活动颜色不起作用

android中的单选按钮不起作用

UITableview 内的单选按钮不起作用

JQueryUI 单选按钮示例不起作用

.click() 在单选按钮上不起作用

默认选中的单选输入在 Laravel 中使用 Bootstrap 语法不起作用