如何防止取消选中芯片



我使用Chip来检查和取消检查按钮。我有多个选择,用户只能选择其中一个。问题是当我点击选中按钮时,它会被取消选中,但这不是我所期望的。我希望我的按钮无论如何都被选中,只有当你选中另一个按钮时,它才应该被取消选中。我正在使用自定义样式:

<style name="Widget.MaterialComponents.Chip.Choice" parent="Base.Widget.MaterialComponents.Chip">
<item name="android:checkable">true</item>
<item name="chipIconVisible">false</item>
<item name="closeIconVisible">false</item>
<item name="chipCornerRadius">5dp</item>
<item name="ensureMinTouchTargetSize">false</item>
<item name="chipStrokeWidth">2dp</item>
<item name="chipStrokeColor">@color/chip_state_selector</item>
<item name="checkedIconVisible">false</item>
</style>

以及自定义边界:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:color="@color/black"
android:state_selected="true"
android:state_checked="true"/>
<item
android:color="@color/black"
android:state_selected="true"/>
<item
android:state_selected="false"
android:color="@color/white"/>
</selector>

我期望的是:3个按钮。首先作为默认值选中。如果我再按这个按钮,它就不会被选中,因为它是这里唯一被选中的按钮。当我按下另一个按钮时,这个按钮会被取消锁定,当然新按钮会被检查。

Soultion是:在ChipGroup的XML 中设置chipGroup.setSelectionRequired(true)app:selectionRequired="true"

ChipGroup单选

最新更新