2013-02-25 34 views
11

Jak dodać animację do DialogFragment. Moje animacje:Jak dodać animację do DialogFragment?

z anim:

<scale 
    android:duration="200" 
    android:fillAfter="false" 
    android:fromXScale="1.0" 
    android:fromYScale="1.0" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:pivotX="50%" 
    android:pivotY="-90%" 
    android:startOffset="200" 
    android:toXScale="0.5" 
    android:toYScale="0.5" /> 

<translate 
    android:duration="300" 
    android:fromXDelta="0" 
    android:fromYDelta="0" 
    android:toXDelta="-200" 
    android:toYDelta="-200" /> 

w Anim:

<scale 
    android:duration="200" 
    android:fillAfter="false" 
    android:fromXScale="0.5" 
    android:fromYScale="0.5" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:pivotX="50%" 
    android:pivotY="-90%" 
    android:toXScale="1.0" 
    android:toYScale="1.0" /> 

<translate 
    android:duration="300" 
    android:fromXDelta="-200" 
    android:fromYDelta="-200" 
    android:toXDelta="0" 
    android:toYDelta="0" /> 

i mój kod:

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
       ft.setCustomAnimations(R.anim.jump_in, R.anim.jump_out, R.anim.jump_in, R.anim.jump_out); 
       ft.add(layer_frag, "layer frag"); 
       ft.show(layer_frag).commit();//layer_frag is a class whitch extends DialogFragment 

muszę coś przeoczyć, ponieważ wydaje się, że pojawia się wcześniej.

+0

Twoja odpowiedź jest tutaj: http://stackoverflow.com/a/13537234/969325. Krótko mówiąc, musisz się hakować, ponieważ nie ma w tym żadnej konstrukcji. – Warpzit

+0

Prawdopodobnie nie, bo to zrobiłem i to też nie działa dla mnie :(zmieniło trochę układ, ale animacja się nie pojawia – Csabi

+0

Wtedy myślę, że pozostało ci zrobienie własnego Fragmentu, który pojawia się jako dialog. – Warpzit

Odpowiedz

15
@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) 
{ 
    final Dialog dialog = super.onCreateDialog(savedInstanceState); 
    dialog.getWindow().getAttributes().windowAnimations = R.style.detailDialogAnimation; 
    return dialog; 
} 

Odpowiedź była od stackoverflow.com/a/13537234/969325 ale trzeba ustawić styl na onCreateDialog funkcji.

+0

Czy wiesz, czy istnieje jakiś sposób na uzyskanie wywołania zwrotnego po ukończeniu animacji? Chciałbym utworzyć animację dwuczęściową, w której okno dialogowe zostanie zsunięte, a następnie zanikające widoki. Jak miałbym się zbliżyć słuchacza do okna Animacje? –

+0

setAnimationListener (nowa AnimationListener() { \t \t \t \t \t \t \t \t \t \t \t \t public void onAnimationStart (animacja) { \t \t \t \t \t // TODO Auto-generowane metoda skrótową \t \t \t \t \t \t \t \t \t} \t \t \t \t \t \t \t \t \t \t \t \t public void onAnimationRepeat (animacja) { \t \t \t \t \t // TODO Auto-generowane metoda en \t \t \t \t \t \t \t \t \t} \t \t \t \t \t \t \t \t \t \t \t void onAnimationEnd (animacja) { \t \t \t \t \t ladder.startAnimation (toRight); \t \t \t \t \t \t \t \t \t} \t \t \t}); – Csabi

+0

Nie musisz ustawiać stylu w 'onCreateDialog', ponieważ możesz uzyskać okno dialogowe używając' getDialog' w dowolnym momencie po wywołaniu 'onCreateDialog'. Nazywam to na przykład w 'onViewCreated'. – sotrh

Powiązane problemy