首页 > 解决方案 > 当以编程方式完成 setChecked 时,ChipGroup setOnCheckedChangeListener 没有回调

问题描述

我正在创建一个Chips在运行时填充ChipGroup它处于单选模式,我还以编程方式在第一次膨胀时将检查状态设置为 true,但我注意到chipGroup.setOnCheckedChangeListener除非我选择新的芯片项,否则永远不会返回回调。这是预期的行为还是错误?

for (i in 0 until categoryChannelList.length()) {
            val chip = Chip(context)

            chip.id = i
            chip.isCheckable = true


            //Styling chip codes......


            // If no chip is selected, first chip will be set
            if (i == 0) {
                chip.isChecked = true
            }

            chipGroup.addView(chip)
        }


// Responds to chip newly check
        chipGroup.setOnCheckedChangeListener { chipGroup: ChipGroup, checkedId: Int ->

            val channelId = chipGroup.findViewById<Chip>(checkedId).tag.toString()

            Toast.makeText(requireContext(), channelId, Toast.LENGTH_LONG).show()
           

        }

通常在收听检查状态时,行为就像 CheckBox 一样,onCheckChange但在这里并非如此。

标签: androidmaterial-designmaterial-components-androidandroid-chips

解决方案


推荐阅读