android - 当以编程方式完成 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
但在这里并非如此。
解决方案
推荐阅读
- python - 如何将 Voronoi 细胞导出到掩码中?
- typescript - TypeScript 对象中缺少属性,但在记录时可见
- .net - 使用 .NET WS/SOAP 两个具有相同结构但方法名称不同的服务器
- python - 为什么在 DataFrame 上使用 pivot_table 时会出现浮点数?
- uwp - 是否可以在 UWP 中以编程方式显示“剪贴板历史记录视图/对话框”
- .net-core - 使用 ImageSharp 从调色板索引创建图像
- c# - 如何判断哪个表列导致了无效的强制转换异常?
- react-native - 仅在 android 中反应原生 0.62 自动链接
- codeigniter - random_bytes 函数在 CI 3、PHP 7.2 中不起作用
- java - 如何在 jre1.8 上运行 java11 和 jfx11 应用程序