overridePendingTransition показывает второе действие слишком быстро

У меня есть 2 действия, и я хочу создать анимированный переход между двумя действиями так, чтобы представления обоих действий скользили вверх, как будто второе действие подталкивает первое действие вверх. в своей первой деятельности я использую:

Intent iSecondActivity = new Intent(FirstActivity.this,SecondActivity.class);
FirstActivity.this.startActivity(iSecondActivity);
FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2);

и мой slide.xml выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate
        android:interpolator="@android:anim/decelerate_interpolator"
        android:fromYDelta="0"
        android:toYDelta="-100%p"
        android:duration="2000"
    />
</set>

и мой slide2.xml выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate
         android:interpolator="@android:anim/decelerate_interpolator"
         android:fromYDelta="100%p"
         android:toYDelta="0"
         android:duration="2000"
    />
</set>

ОДНАКО, проблема в том, что когда вызывается "startActivity", представление второго действия уже визуализируется, а переход только начинает скользить. Мне бы хотелось, чтобы вид первого действия скользил вверх... но вместо этого я вижу вид второго вида (отображаемый поверх вида первого действия) вверх.

Вторая проблема заключается в том, что я вижу заменяющее представление, являющееся видом первого действия. я хотел бы, чтобы представление замены было вторым видом деятельности, который выдвигается вверх.

Это сложно объяснить, поэтому, пожалуйста, дайте мне знать, если я смогу объяснить что-нибудь более подробно. извиняюсь за любую путаницу, и спасибо за чтение этого.

PS Я использую textviews... я думаю, что это делает слишком быстро? Я также использую Motorola Razr, не то чтобы это имело значение.

2 ответа

Решение

Неважно, это была глупая ошибка - я не понимал, что означает документация под "вводом анимации" против "выхода из анимации". мне нужно обменять xmls, изменив:

FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2);

в

FirstActivity.this.overridePendingTransition(R.anim.slide2, R.anim.slide);

Просто добавьте их в свой slide2.xml:

android:startOffset="2000"

таким образом, анимация для 2-го действия начнется только после завершения анимации вашего 1-го действия.

Другие вопросы по тегам