Слайд анимация снизу вверх между действиями - PullRequest
2 голосов
/ 16 января 2020

Я успешно создал скользящую анимацию между действиями, где новое действие скользит снизу вверх. Проблема: скользя вверх, она «выталкивает» старую активность наружу, чтобы занять свое место. Я хотел бы создать анимацию, которая не перемещает старое действие, а просто скользит снизу вверх и вверх поверх старого действия, в то время как старое действие останавливается.

slide_in_up. xml:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
</set>

slide_out_down. xml:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromYDelta="0"
        android:toYDelta="-100%p" />
</set>

функция для запуска нового действия со слайдом:

override fun startEditProfile() {
    startActivity(EditProfileActivity.newIntent(this))
    overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_down)
}

Можно ли сделать новое действие скользящим снизу вверх, пока старое действие не движется?

1 Ответ

2 голосов
/ 16 января 2020

см. Комментарий исходного кода о overridePendingTransition двух параметрах:

 @param enterAnim A resource ID of the animation resource to use for
 the incoming activity.  Use 0 for no animation.
 @param exitAnim A resource ID of the animation resource to use for
 the outgoing activity.  Use 0 for no animation.

, поэтому, если вы хотите, чтобы действие выхода (старое) не перемещалось, измените анимацию выхода к этому

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromXDelta="0%"
        android:toXDelta="0%"
        android:fromYDelta="0%"
        android:toYDelta="0%" />
</set>

или установите 0 без анимации

...