因此,当我单击ListView中的列表项时,它会变为动画。问题是,当它动画时我仍然可以点击它,这是不可取的。我正在使用nineOldAndroids并禁用我所做的ListItem:
set.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
v.setClickable(false);
v.setEnabled(false);
}
@Override
public void onAnimationEnd(Animator animator) {
v.setClickable(true);
v.setEnabled(true);
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
});
setClickable表现得很奇怪:它让我在动画开始后的短暂时间点击列表项,动画结束后它不再让我点击它(即使我将它设置为true)。并且setEnabled根本不起作用。
如何在动画运行时禁用列表项?
答案 0 :(得分:1)
使适配器isEnabled(int position)方法在该项目上的动画进行时返回false。
将此添加到您的适配器
Set<Integer> disabledItems;
private void setRowEnabled(int position,boolean enabled){
if(enabled){
disabledItems.remove(position);
}else{
disabledItems.add(position);
}
}
@Override
public boolean isEnabled(int position) {
return !disabledItems.contains(position);
}
从动画的onAnimationStart onAnimationEnd调用setRowEnabled