Android材质按钮切换组-选中“无”

Android材质按钮切换组-选中“无”,android,android-button,material-components-android,material-components,android-togglebutton,Android,Android Button,Material Components Android,Material Components,Android Togglebutton,我正在使用带有单个选择的MaterialButtonToggleGroup(一次只选中一个按钮)。如何检查是否未选中任何按钮 toggleGroup?.addOnButtonCheckedListener { group, checkedId, isChecked -> if (isChecked) { when (checkedId) { R.id.first_materialButton ->

我正在使用带有单个选择的
MaterialButtonToggleGroup
(一次只选中一个按钮)。如何检查是否未选中任何按钮

        toggleGroup?.addOnButtonCheckedListener { group, checkedId, isChecked ->
        if (isChecked) {
            when (checkedId) {
                R.id.first_materialButton -> {
                    // do something when selected
                }

                R.id.second_materialButton -> {
                    // do something when selected
                }
            }
        }
    }

解决方案是从else分支上的组中获取
isChecked
checkedButonid
,如果该值为-1,则不选择任何按钮

toggleGroup?.addOnButtonCheckedListener { group, checkedId, isChecked ->
    if (isChecked) {
        when (checkedId) {
            R.id.first_materialButton -> {
                // do something when selected
            }

            R.id.second_materialButton -> {
                // do something when selected
            }
        }
    } else {
        if (group.checkedButtonId == View.NO_ID) {
           // do something when nothing selected
        }
    }
}

如果需要侦听器,请检查

否则,您可以使用以下方法:

List<Integer> ids = materialButtonToggleGroup.getCheckedButtonIds();
if (ids.size() == 0){
  //Case unckecked
}
此属性至少需要版本
1.2.0-alpha03

<com.google.android.material.button.MaterialButtonToggleGroup
    app:selectionRequired="true"
    app:singleSelection="true"
    ..>