2013-07-25 21 views
10

Ho già creato un metodo per un'animazione quando si cambiano le attività quando si preme il pulsante Indietro. Il problema è che il pulsante su barra delle azioni ha l'effetto di transizione predefinito per l'attività precedente e non riesco a trovare un modo per sovrascrivere quell'animazione e usarne una nuova. Qualche idea? Grazie in anticipoEffetto effetto transizione barra in su

Preferibilmente questo sarebbe stato codificato in Java

risposta

24

solo ottenere l'evento "ritorno a casa"

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    if (item.getItemId() == android.R.id.home) { 
     finish(); 
     overridePendingTransition(R.animator.anim_left, R.animator.anim_right); 
     return true; 
    } 
    return false; 
} 
+1

Grazie compagno, ha funzionato perfettamente :) – dominguesgm

+0

No prob, si dovrebbe contrassegnare come accettato allora –

+0

Purtroppo, non R.animator presente nel mio setup. Qualche idea del perché? –

3
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      onBackPressed(); 
      return true; 

     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

@Override 
public void onBackPressed() { 
    this.finish(); 
    overridePendingTransition(R.anim.fade_in, R.anim.right_slide_out); 
} 

fade_in.xml (R.anim.fade_in)

<?xml version="1.0" encoding="utf-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="300" 
    android:fromAlpha="0.0" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:toAlpha="1.0" /> 

right_slide_out.xml (R.anim.right_slide_out)

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"> 
    <translate 
     android:duration="200" 
     android:fromXDelta="0" 
     android:toXDelta="100%p" /> 
</set> 
+0

Questo è quello che faccio anch'io, ma mi piacerebbe che ci fosse un modo più efficiente di gestire contemporaneamente sia il pulsante indietro che l'home-up! – Micro

+0

@MicroR Ho fatto una modifica. –