最近遇到的一个问题,使用listView打造一个Tree树,item中包含CheckBox做折叠关闭,当list条目少时滑动不会发生闪烁的问题,当条目很多,展开父节点时滑动就出现了闪烁自动关闭父节点的问题。
问题原因: CheckBox使用的setOnCheckedChangeListener时,当父节点移出屏幕时缓存清除,触发了此事件。
解决方案: CheckBox采用onClick监听选中事件,示例如下:
viewHolder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onCheckedChangeListener.onCheckedChanged((CompoundButton) v, viewHolder.checkBox.isChecked());
}
});
or
//全局变量
View.OnClickListener onCheckClickListenner;
...
viewHolder.checkBox.setOnClickListener(onCheckClickListenner);