2012-08-28 27 views
23

Tôi đang sử dụng thư viện hỗ trợ. Bây giờ, tôi muốn có một mảnh chuyển dịch từ phía dưới, di chuyển OVER trước đó.đoạn, android: zĐiều chỉnh (thứ tự z) và hoạt ảnh

Đối với điều này tôi sử dụng này để giữ cho đoạn trước đó (một trong đó là bị trượt trở lên) có thể nhìn thấy cho đến khi đoạn mới là ở chỗ của nó:

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

này là phim hoạt hình sử dụng cho các đoạn mới để trượt từ đáy:

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

tôi đã đặt việc điều chỉnh z xuống dưới và hàng đầu cho cả hai, nhưng vẫn là phim hoạt hình 'đáy' vẫn nằm trên đoạn mới ! Tôi đã dành thời gian để 2500 cho thử nghiệm và nó vẫn ở trên đầu cho toàn bộ thời gian.

ZAdjustment có hoạt động không cho hoạt ảnh phân đoạn không?

+0

Bạn có tìm thấy cách nào để buộc đoạn trước đó xuất hiện bên dưới đoạn xuất hiện không? –

+0

Tôi không chắc mình đã làm gì để làm việc này. Nên kiểm tra mã của tôi nhưng không thể vào lúc này. – Boy

+1

Bạn có thể điều chỉnh chỉ số z trong hoạt ảnh phân đoạn bằng cách nào? Nó sẽ rất hữu ích nếu bạn chia sẻ với chúng tôi. – cprcrack

Trả lời

9

Theo this chủ đề nhóm google Z, điều chỉnh chỉ hoạt động cho hoạt ảnh cửa sổ.

"Điều chỉnh Z chỉ hoạt động đối với hoạt ảnh trên cửa sổ. Tôi nghĩ điều này đã được ghi lại, nhưng có vẻ không phải." - Dianne Hackborn (kỹ sư khuôn khổ Android)

+9

Vì vậy, một số cách giải quyết có thể là gì? – Marchy

3

Tôi cũng gặp vấn đề đó. Vì vậy, thay vì sử dụng transaction.replace(containerId, newFragment) tôi đã tạo ra hai container cho mảnh vỡ và bây giờ mã của tôi trông như thế này một

Thêm đoạn đầu tiên:

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

Thêm đoạn thứ hai với hình ảnh động trên người đầu tiên:

findViewById(containerId2).bringToFront(); 
transaction.setCustomAnimations(R.anim.slide_in_up, 
R.anim.stay).remove(oldFragment).add(containerId2, newFragment).commit() 
Các vấn đề liên quan