GroupItem、ChildItem包含CheckBox联动的ExpandableListview使用中需要注意的一些地方,仅供自己总结,欢迎大神批评指导。
结构组成:ExpandableListView,groupItem、childItem都包含CheckBox。
groupItem实体代码:
class LayerControlGroup {
private String name;//组名
private int size;//item个数
private boolean isChecked;//选中状态
private List<LayerControlItem> items;//item集合
childItem实体代码:
class LayerControlItem {
private String name;//名称
private Boolean isChecked;//选中状态
private …… ……//其他属性
实现效果:点击groupItem实现展开显示childItem,点击groupItem的CheckBox改变选中状态,该group下的childItem中的CheckBox实现全选/全不选联动,并实现相关操作;点击childItem,修改CheckBox选中状态,实现相关操作,对应groupItem的CheckBox联动改变选中状态。
问题及解决办法:
问题1.点击groupItem无响应(展开/收起);
原因分析:groupItem的布局中存在CheckBox时会有焦点冲突,CheckBox首先获取焦点。
解决办法:在xml中给CheckBox取消焦点。
android:focusable="false"