Анимация перехода не работает в ландшафтном режиме
Я пытаюсь анимировать переходы между действиями в моем приложении. У меня есть right_to_left.xml, который работает на книжной ориентации экрана.
Вот тут right_to_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="100%"
android:interpolator="@android:anim/linear_interpolator"
android:toXDelta="0" />
</set>
Вот right_to_left_slide_out.xml (чтобы выдвинуть предыдущее действие при переходе.)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="0"
android:interpolator="@android:anim/linear_interpolator"
android:toXDelta="-100%p" />
</set>
Я использовал его после startActivity() и не было никаких проблем в портретном режиме.
Но я добавил опцию для изменения ориентации экрана в ландшафтный режим.
Если включен ландшафтный режим, я устанавливаю запрошенную ориентацию с кодом ниже в onCreate ().
//SCREEN ORIENTATION
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Это хорошо работает, активность создается в ландшафтном режиме без каких-либо проблем. Но когда я пытаюсь запустить действие с помощью overridePendingTransition(R.anim.right_to_left, R.anim.right_to_left_slide_out), который работает в портретном режиме, анимация перехода не отображается в ландшафтном режиме.
Я что-то пропустил?
РЕДАКТИРОВАТЬ: я пытался создать новый анимационный XML-файл, который работает с YDelta. Это тоже не сработало.
1 ответ
Анимация не воспроизводится, потому что Android Studio не отображает виды, которые не установлены на Видимый или Невидимый при запуске приложения. Проблема в том, что ваш пейзажный вид еще не отображается, когда анимация начинает воспроизводиться. Он визуализирует его на месте и полностью пропускает анимацию.
Чтобы проверить эту теорию, просто добавьте к своей деятельности версию вашего ландшафтного макета с помощью
Удачи.