2012-08-28 11 views
23

Destek kütüphanesini kullanıyorum. Şimdi, alttan içe doğru kaymış bir parçaya sahip olmak istiyorum.parça, android: zAdjustment (z sipariş) ve animasyonlar

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

bu yeni fragmanı için kullanılan canlandırma kaymaya edilir: Yeni fragmanı yerine kadar görünen bir önceki parçası (üzerinden kaydırılan olan bir) tutmak için kullanabilir Bunun için

alttan: hala hem aşağı ve yukarı doğru z ayarlama koymak, ama ettik

<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"/> 

'alt' animasyon yeni fragmanının üst kısmında hala ! Süreyi test için 2500'e aldım ve tüm zaman boyunca zirvede kalıyor.

Zade parçası parça animasyonları için çalışmıyor mu?

+0

Önceki parçanın görünen parçanın altında görünmesini zorlamak için herhangi bir yol buldunuz mu? –

+0

Bu çalışma için ne yaptığımı bilmiyorum. Kodumu kontrol etmem gerekiyor ama şu anda mümkün değil. – Boy

+1

Bir şekilde fragman animasyonlarındaki z-endeksini ayarlayabiliyorsunuz? Bizimle paylaşırsanız çok yararlı olacaktır. – cprcrack

cevap

9

this'a göre google grup iş parçacığı Z ayarı yalnızca pencere animasyonları için çalışır.

"Z ayarı yalnızca pencere animasyonları için çalışır. Bunun belgelendiğini sanıyorum, ama görünüşe göre değil." - Dianne Hackborn (Android çerçeve mühendisi)

+9

çok uzun oldu Peki, bazı olası geçici çözümler nelerdir? – Marchy

3

Ayrıca bu sorunla uğraştım. Bunun yerine transaction.replace(containerId, newFragment) kullanmanın ben parçaları için iki konteyner oluşturduk ve bu bir

ilk parçasını ekleyin gibi şimdi benim kod görünür:

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

ilki üzerinde animasyon ile ikinci parçasını ekleyin:

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