Эффект перехода с помощью ActionBar вверх - программирование
Подтвердить что ты не робот

Эффект перехода с помощью ActionBar вверх

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

Предпочтительно, это было бы жестко закодировано в java

4b9b3361

Ответ 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>