Активность, перемещающаяся снизу вверх, но фоновая активность не должна перемещаться
Я пытаюсь переместить Activity from Bottom to Top, который я могу сделать.
Но при скольжении снизу вверх моя фоновая активность также сползает на дно. Я хочу сохранить фоновую активность на той же позиции, что и она, так что новая активность будет отображаться как наложение фоновой активности при открытии.
Вот мой slide_in_up.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%p" android:toYDelta="0%p"
android:duration="@android:integer/config_longAnimTime"/>
и slide_out_up.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0%p" android:toYDelta="100%p"
android:duration="@android:integer/config_longAnimTime"/>
Как я могу это сделать?
Благодаря...
Ответы
Ответ 1
Затем создайте исходящую анимацию, чтобы текущая активность оставалась неподвижной:
overridePendingTransition(R.anim.slide_in_up, R.anim.stay);
stay.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="0%p" />
Ответ 2
slide_up.xml
<?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="@android:integer/config_longAnimTime"
android:fromYDelta="100%p"
android:toYDelta="0" />
</set>
slide_down.xml
<?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="@android:integer/config_longAnimTime"
android:fromYDelta="0"
android:toYDelta="100%p" />
</set>
stay.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="0%p" />
Открыть мероприятие
startActivity(new Intent(FromActivity.this, ToActivity.class));
overridePendingTransition(R.anim.slide_up, R.anim.stay);
Закрыть Активность
finish();
overridePendingTransition(R.anim.stay, R.anim.slide_down);
Ответ 3
Вы можете просто вызвать overridePendingTransition(R.anim.slide_in_up, 0)
0
означает отсутствие анимации.