2014-06-17 4 views
0

지금이 문제를 몇 시간 동안 풀려고했으나 무엇을해야할지 전혀 모릅니다.애니메이션보기에서 z 순서를 변경할 수 없습니다.

LinearLayout에는 두 개의 동일한 높이가 각각 2 개 있습니다 (RelativeLayout). 아래쪽 것들은 애니메이션이 시작되기 전에 사라졌으며 맨 위의 "슬라이드 아웃"하고자합니다 onClick. 슬라이드는 완벽하게 작동하지만 애니메이션보기는 내가하는 일과 관계없이 항상 다른보기 위에 있습니다. 아래쪽이 "밖으로 미끄러 져 나가는 것"처럼 보일 것입니다. 그것은 내가 달성하기를 원하는 효과가 아닙니다.

내 애니메이션은 다음과 같습니다

<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="1000" 
    android:fromYDelta="-100%" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:toYDelta="0" 
    /> 

이미 애니메이션되지 않고 그냥 애니메이션 하나의 최상단에해야 볼 수있는 view.bringToFront()을 위해 노력했다. 그러나 결과적으로 애니메이트되지 않은 뷰가 맨 아래 뷰로 표시됩니다.

아무도 도와 줄 수 있습니까?

답변

1

이것은 레이아웃의 자식 레이아웃에 대한 Z- 인덱스 배치가 지원되는 상대 레이아웃과 프레임 레이아웃과 같이 지원됩니다. 문서에서

view.bringToFront(); 

설명 : : 트리에서 뷰의 Z 순서를 변경 , 그래서 다른 형제 뷰의 상단에있어 당신은 시도 할 수 있습니다.

또한 시도 할 수 있습니다 :

bringChildToFront(View child) 

변경 다른 모든 아이들의 상단에, 그래서 아이의 z 순서.

이러한 방법은보기 트리에서 하위보기를 변경합니다. 적절한 장소는 애니메이션의 animationEnded 메소드에있을 것입니다.

+1

고마워요! 두 RelativeLayouts의 래핑 컨테이너 Layout을 RelativeLayout으로 변경하는 것이 핵심이었습니다. 이제 잘 작동합니다! – JensJensen

관련 문제