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-го действия.