2012-08-28 5 views
23

지원 라이브러리를 사용하고 있습니다. 이제, 나는 이전의 것 위로 이동하면서, 아래에서부터 프래그먼트를 이동시키고 싶다.조각, android : z 조정 (z 순서) 및 애니메이션

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="1.0" android:toAlpha="1.0" 
    android:duration="2500" 
    android:zAdjustment="bottom" /> 

이 새로운 조각에 사용되는 애니메이션이 슬라이드하는 것입니다 : 나는 새로운 조각이 그 자리에 때까지 눈에 보이는 이전의 단편 (이상 슬라이드 이동되고있는 하나)을 유지하기 위해 이것을 사용이 들어

아래에서 : 나는 아직도 모두 바닥 가기 Z 조정을하는 듯했으나 한

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate android:fromYDelta="100%p" android:toYDelta="0" 
     android:duration="@android:integer/config_mediumAnimTime" 
     android:zAdjustment="top"/> 

'바닥'애니메이션은 새로운 조각의 상단에 여전히 ! 나는 테스트를 위해 듀레이션을 2500으로 설정했으며 전체 시간 동안 맨 위에 머물러 있습니다.

조각 애니메이션의 경우 z 조정을 사용할 수 없습니까?

+0

이전 조각이 나타나는 조각 아래에 표시되도록하려면 어떤 방법을 찾았습니까? –

+0

나는이 일을하기 위해 내가 무엇을했는지 모르겠습니다. 내 코드를 확인해야하지만 현재로서는 불가능합니다. – Boy

+1

조각 애니메이션에서 Z- 인덱스를 어떻게 조정할 수 있습니까? 당신이 우리와 함께한다면 그것은 매우 도움이 될 것입니다. – cprcrack

답변

9

this에 따르면 Google 그룹 스레드 Z 조정은 창 애니메이션에서만 작동합니다.

"Z 조정은 창 애니메이션에만 적용됩니다. 문서화되었지만 분명히 아닙니다." - Dianne Hackborn (Android 프레임 워크 엔지니어)

+9

가능한 해결 방법은 무엇입니까? – Marchy

3

나는 또한 그 문제에 봉착했습니다. 그래서 그 대신 transaction.replace(containerId, newFragment)를 사용하는 나는 조각 두 개의 컨테이너를 만든이 하나

이 첫번째 조각 추가처럼 지금 내 코드는 같습니다

transaction.add(containerId1, firstFragment).commit(); 

은 첫 번째에 걸쳐 애니메이션 두 번째 조각을 추가

findViewById(containerId2).bringToFront(); 
transaction.setCustomAnimations(R.anim.slide_in_up, 
R.anim.stay).remove(oldFragment).add(containerId2, newFragment).commit()