6

Efektem, który chcę osiągnąć, jest nałożenie fragmentu (nowego) powyżej fragmentu wyjściowego (starego), , ale kiedy zastępuję stary fragment nowym fragmentem, stary znika po prostu i nowy fragment ślizga się po pojemniku, który jest widoczny (kontener).Jak wyświetlić fragment powyżej fragmentu wyjściowego podczas animowania.

Nie chcę animować starego fragmentu, po prostu zachowując stary fragment taki jaki jest i gdy jest widoczny, przesuń nowy fragment powyżej.

Poniżej jest mój kod:

// 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(); 

Prowadź mnie gdzie idę źle. Mój stary fragment znika, a nowy fragment przesuwa się w górę.

+1

Chcesz tego [this] (http://trickyandroid.com/fragments-translate-animation/)? –

+0

Musisz dodać oba fragmenty nie zamieniać, ponieważ sama nazwa mówi, że jest zastępowana, dlatego Twój stary fragment jest usuwany. –

Odpowiedz

0

Nowy fragment powinien mieć wprowadzić animację takiego (który może być już robi): 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" /> 

stary fragment powinien pozostać w tym samym miejscu jak utrzymać. hold.xml

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

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

+0

nadal mój stary fragment nie jest widoczny – Dory

+0

I nie chcę starego fragmentu do animacji, powinien być widoczny w tle, dopóki nowy fragment się nie zsunie. – Dory

0

można spróbować zastąpić zastąpić() z add(), aby osiągnąć pożądany efekt. Mam nadzieję, że to ci pomoże.

Powiązane problemy