Эффект перехода с помощью ActionBar вверх
Я уже создал метод анимации при изменении действий при нажатии кнопки "Назад".
Проблема в том, что кнопка "Действие вверх" имеет эффект перехода по умолчанию к предыдущему действию, и я не могу найти способ переопределить эту анимацию и использовать новую.
Есть идеи? Спасибо заранее
Предпочтительно, это было бы жестко закодировано в java
Ответы
Ответ 1
Просто получите событие "home back"
@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;
}
Ответ 2
@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>