1

버튼과 텍스트보기가 두 개인 레이아웃 (RelativeLayout)이 있습니다. 정보가 변경 될 때마다 모든보기가 사라지고 정보가 업데이트 된 다음보기가 희미 해집니다. 나는 이것을 위해 레이아웃 애니메이션을 사용한다.Android 4에서 TextViews가 한 번만 활성화됩니다.

매우 이상한 점은 텍스트보기는 한 번만 움직일 수 있다는 것입니다. 그들은 한 번 올바르게 페이드 인/아웃하고 더 이상 움직이지 않게됩니다. 반면에 버튼은 계속 잘 움직입니다.

또 다른 이상한 점은 android 4.0.x에서 android 2.3.x에서이 문제가 발생하지 않는다는 것입니다.

내가 페이드 후 텍스트 뷰에 애니메이션을 취소하여 문제를 해결할 수 있지만, 그들은 여전히 ​​퇴색되지 않기 때문에 그렇게 좋은 보이지 않는다.

난에 애니메이션을 취소 시도 페이드 인하기 전에 텍스트보기가 도움이되지 않습니다. 또한 manifest에서 targetSdkVersion 속성의 다른 설정을 시도했지만 결과가 없습니다. 애니메이션 페이드가

(페이드 아웃은 유사하다) :

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="750" 
    android:fillAfter="true" 
    android:fromAlpha="0.0" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:toAlpha="1.0" 
/> 

애니메이션 코드 (이 실행될 때마다 레이아웃이 페이드하는 것입니다) :

// Set listener. 
viewGroup.setLayoutAnimationListener(listener); 

// Load animation. 
final Animation fadeIn = AnimationUtils.loadAnimation(context, R.anim.fade_in); 

// Create and start animation controller. 
final LayoutAnimationController animController = new LayoutAnimationController(fadeIn); 
viewGroup.setLayoutAnimation(animController); 
animController.setAnimation(fadeIn); 
animController.setDelay(FADE_IN_DELAY + extraDelay); 
animController.setOrder(LayoutAnimationController.ORDER_REVERSE); 
animController.start(); 

사람이 어떤 생각을 가지고 있습니까 ? Button과 TextViews 사이에 애니메이션의 차이가 있습니까? Android 4에서 이전 버전과의 호환성을 깨는 애니메이션 변경 사항이 있습니까?

감사합니다.

+0

내 페이드 인 애니메이션이 4.2.1에서 다시 올바르게 작동합니다. 이 문제를 해결하기 위해 더 이상 시간을 낭비하지 않을 것입니다. – Snakebunk

답변

2

보기 애니메이션은보기 그룹이 어린이를 낳는 경우에만 발생합니다. [LayoutAnimationController][1] 문서에 따르면 각 어린이에 대해 동일한 애니메이션이 재생 시간은 다르지만 일반적으로 예를 들어. ListView 또는 GridView을 사용하여 항목의 입구를 움직입니다.

콘텐츠를 업데이트 할 때 애니메이션이 이 아닌이 일반적으로 재생됩니다. 콘텐츠를 업데이트 할 때마다 애니메이션이 재생되도록하려면 View.startAnimation(Animation)View.clearAnimation()을 사용해야합니다.

+0

예, 동의합니다. 위의 코드 스 니펫에서 viewGroup을 애니메이션으로 배치 한 레이아웃과 마지막 줄을 사용하여 레이아웃 애니메이션을 시작합니다. animController.start(); – Snakebunk

+0

레이아웃 XML에 레이아웃 애니메이션을 첨부하지 않는다고 추가 할 수 있습니다. 스 니펫이 설명하는대로 자바 코드에서 처리됩니다. – Snakebunk