2011-01-15 4 views
2

플립 애니메이션이있는 사용자 정의 ViewSwitcher가 있습니다. 문제는 현재 표시되지 않은보기 (하위 버튼 포함)가 활성보기에서 클릭을 가로 채고 있다는 것입니다. 가시성을 보이지 않게 설정하려고했거나 작동하지 않았습니다. 모든 자식 뷰를 반복하고 setClickable (false)을 설정했는데 작동하지 않았습니다.android : ViewSwitcher의 비활성 자식보기에서 클릭을 사용 중지합니다.

아마도 내가 잘못된 장소에서 변경 사항을 적용하고 있습니까? 아래는 내 코드의 관련 섹션입니다.

public class ViewFlip3D extends ViewSwitcher { 
    // switches views 
    public void flip() { 
     float centerX = getWidth()/2.0f; 
     float centerY = getHeight()/2.0f; 

     Flip3D animOut = new Flip3D(-90, 0, centerX, centerY); 
     animOut.setDuration(500); 
     animOut.setInterpolator(new AccelerateInterpolator()); 
     animOut.setFillAfter(true); 

     Flip3D animIn = new Flip3D(0, 90, centerX, centerY); 
     animIn.setDuration(500); 
     animIn.setInterpolator(new DecelerateInterpolator()); 
     animIn.setFillAfter(true); 

     animIn.setAnimationListener(new ShowNextView(this, animOut)); 

     ViewGroup view = (ViewGroup) getCurrentView(); 

     // Disable clicks here! 
     // like: view.DisableClicksFromAllChildViews(); 

     view.startAnimation(animIn); 
    } 

    private final class ShowNextView implements Animation.AnimationListener { 
     public void onAnimationEnd(Animation animation) { 
      container.showNext(); 
      ViewGroup view = (ViewGroup) container.getCurrentView(); 
      view.startAnimation(flipin); 

      // Enable clicks here! 
      // like: view.EnableClicksFromAllChildViews(); 
     } 
    } 
} 
+0

문제를 파악 했습니까? 심지어 비슷한 문제에 직면하고 있습니다! – Antrromet

답변

0

보기를 끝내려면 채우기를 제거하거나 clearAnimation을 호출하십시오.

필요에 맞지 않는 경우 재귀 적으로 자식을 반복하고 clickable을 false로 설정할 수 있습니다.

관련 문제