2013-12-10 2 views
0

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 이상하게 동작 : 그것은 나를 애니메이션 시작 후 짧은 시간 동안 목록 항목을 클릭 할 않고 애니메이션이 종료 된 후에는 못하게 나는 그것을 더 이상 클릭하지 않는다. 그리고 setEnabled는 전혀 작동하지 않습니다.

애니메이션이 실행되는 동안 어떻게 목록 항목을 비활성화 할 수 있습니까?

답변

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); 
} 

이 추가 그리고이 애니메이션

+0

의 onAnimationStart onAnimationEnd에서 setRowEnabled 전화 그리고 나는 그것을 정확히 어떻게해야합니까? – VM4

+0

일부 코드를 –

+0

에 추가했습니다. 감사합니다. 하지만 Set private set을 초기화해야합니다. disabledItems = new HashSet (); – VM4

관련 문제