2013-07-25 2 views
10

Я уже создал метод анимации при изменении действий при нажатии кнопки «Назад». Проблема заключается в том, что кнопка «Действие вверх» имеет эффект перехода по умолчанию к предыдущему действию, и я не могу найти способ переопределить эту анимацию и использовать новую. Любые идеи? Заранее спасибоЭффект перехода кнопки ActionBar вверх

Предпочтительно это будет жёстко в Java

ответ

24

Просто получить событие "домой обратно"

@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

Спасибо дружище, работал отлично :) – dominguesgm

+0

Нет Prob, вы должны пометить его как принято тогда –

+0

К сожалению, нет R.animator присутствует в моей установке. Любая идея почему? –

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

Это то, что я тоже делаю, но я бы хотел, чтобы был эффективный способ одновременно управлять кнопкой «Назад» и «домой»! – Micro

+0

@MicroR Я сделал редактирование. –

Смежные вопросы