Android 展开/折叠listView时的重新绘制效果包含复选框

Android 展开/折叠listView时的重新绘制效果包含复选框,android,checkbox,drawing,expandablelistview,expandablelistadapter,Android,Checkbox,Drawing,Expandablelistview,Expandablelistadapter,我有一个可扩展的ListView,它在groupViwes和GroupChildView中都包含复选框。 选中一个或多个复选框时,会在展开/折叠listView的任何组视图时产生重新绘制效果,请检查以下内容: 如您所见,在展开后折叠组KG-1时,组5级将上移到一个新位置,这会使名为1的组(及其子组)产生不良的闪烁效果重新绘制未选中状态需要一段时间,因为它占据了已选中组的位置,即等级5 那么,如何消除这种再吸引效应呢?如果可以解决问题,甚至可以延迟崩溃。在调用setChecked()后立即调用复

我有一个可扩展的ListView,它在groupViwes和GroupChildView中都包含复选框。 选中一个或多个复选框时,会在展开/折叠listView的任何组视图时产生重新绘制效果,请检查以下内容:

如您所见,在展开后折叠组
KG-1
时,组
5级
将上移到一个新位置,这会使名为
1
的组(及其子组)产生不良的闪烁效果重新绘制未选中状态需要一段时间,因为它占据了已选中组的位置,即
等级5


那么,如何消除这种再吸引效应呢?如果可以解决问题,甚至可以延迟崩溃。

在调用
setChecked()
后立即调用
复选框上的jumpDrawablesToCurrentState()
。它将跳过
复选框的状态更改动画

checkBox.setChecked(false);
checkBox.jumpDrawablesToCurrentState();

参见或类似。在我看来,一种更简单的方法是使用一个没有动画的自定义复选框。@实际上,ADM不知道如何禁用动画,但禁用所提供链接中答案中提到的动画确实解决了问题,您可以引用它并添加为答案,如果您愿意,非常感谢。它与
setChecked非常类似(选中bolean,boolean shouldAnimate)
。整个想法是跳过动画。这就是它工作的原因。