6

Tác dụng những gì tôi muốn đạt được là phủ lớp (mới) đoạn trên đoạn thoát (cũ), nhưng khi tôi thay thế đoạn cũ bằng đoạn mới, đoạn cũ chỉ biến mất và đoạn mới trượt lên thùng chứa, hiển thị (vùng chứa).Cách hiển thị đoạn nhập phía trên đoạn thoát trong khi hoạt ảnh.

Tôi không muốn tạo hiệu ứng cho đoạn cũ, chỉ giữ đoạn cũ như nó và trong khi nó có thể nhìn thấy trượt lên mảnh mới phía trên nó.

Dưới đây là mã của tôi:

// First time adding fragment i.e. "oldFragemnt" 
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
ft.replace(R.id.content_frame, oldFragment, "oldFragemnt"); 
ft.addToBackStack(null); 
ft.commit(); 

// while adding "newFragemnt" 
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
ft.setCustomAnimations(R.anim.new_slide_in_up,0,0,R.anim.new_slide_out_down);         
ft.replace(R.id.content_frame, newFragment, "newFragemnt"); 
ft.addToBackStack(null); 
ft.commit(); 

Hướng dẫn tôi, nơi tôi sẽ sai. Đoạn cũ của tôi biến mất trong khi mảnh vỡ mới đang trượt lên.

+1

Bạn có muốn [this] (http://trickyandroid.com/fragments-translate-animation/) không? –

+0

Bạn phải thêm cả hai fragmnet không thay thế như tên chính nó nói rằng nó là thay thế đó là lý do tại sao mảnh cũ của bạn là loại bỏ. –

Trả lời

0

Đoạn mới nên có một nhập hoạt hình như thế này (mà bạn có thể làm được): enter.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:shareInterpolator="false" > 

<translate 
    android:duration="400" 
    android:fromXDelta="90%" 
    android:fromYDelta="0%" 
    android:toXDelta="0%" 
    android:toYDelta="0%" 
    android:zAdjustment="top" /> 

Đoạn cũ nên ở trong cùng một vị trí như giữ. hold.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:shareInterpolator="false" > 

<translate 
    android:duration="400" 
    android:zAdjustment="bottom" /> 

+0

vẫn mảnh cũ của tôi là không thể nhìn thấy – Dory

+0

Và tôi không muốn đoạn cũ để animate, nó sẽ được nhìn thấy trong nền cho đến khi mảnh vỡ mới lên. – Dory

0

Bạn có thể thử thay thế thay thế() với add() để đạt được hiệu quả mong muốn. Hy vọng điều này sẽ giúp bạn.

Các vấn đề liên quan