У меня есть три вида деятельности, режим запуска которых - один экземпляр.
Используя onfling()
, я качаю их влево и вправо.
Проблема в том, что когда я провожу пальцем справа налево, переход между слайдами - это нормально, но когда я провожу пальцем слева направо, я получаю переход вправо влево.
Я знаю, почему это происходит, потому что я всегда посылаю новые намерения. Но теперь мне нужно изменить анимацию скольжения слева направо.
Я знаю, что есть метод с именем overridingTransitionPending()
, но я не знаю, как определить мою анимацию в XML.
Ответы:
Используйте этот XML в
res/anim/
Это для анимации слева направо:
Это для анимации справа налево:
В вашем коде используйте намерение как слева направо:
В вашем коде используйте намерение как справа налево
источник
Если вы хотите, чтобы переход работал для всего приложения, вы можете создать
rootacivity
и наследовать его в нужной вам деятельности. В вызове onCreate Root ActivityoverridePendingTransition
с нужным направлением. ИonStart
позвоните вoverridePendingTransition
другом направлении, если деятельность возобновится. Здесь я даю полный код ниже. Исправьте меня, если я ошибаюсь.создайте этот XML-файл в вашей папке anim
anim_slide_in_left.xml
anim_slide_in_right.xml
anim_slide_out_left.xml
anim_slide_out_right.xml
RootActivity
FirstActivity
SecondActivity
ThirdActivity
и наконец Манифест
источник
Сделал пример кода, реализующий то же самое с эффектами слайдов слева, справа, сверху и снизу. (Для тех, кто не хочет делать все эти файлы аним XML) :)
Оформить заказ на GitHub
источник
Используйте этот стиль, как я определил ниже.
появиться - сделать так, чтобы он только появился.
===========================================
сделать это медленно исчезает в view.xml
==========================================
fadeout - сделать его медленно исчезающим из view.xml
==========================================
push_down_in.xml
==========================================
push_down_out.xml
==========================================
push_left_in.xml
==========================================
push_left_out.xml
==========================================
push_right_in.xml
==========================================
push_right_out.xml
==========================================
push_up_in.xml
==========================================
push_up_out.xml
==========================================
rotation.xml
==========================================
scale_from_corner.xml
==========================================
scale_torwards_corner.xml
==========================================
shrink_and_rotate_a (выход) .xml
==========================================
shrink_and_rotate_b (вход) .xml
========================================
blink.xml
========================================
ZoomIn.xml
========================================
ZoomOut.xml
========================================
FadeIn.xml
========================================
FadeOut.xml
========================================
Move.xml
========================================
SlideDown.xml
========================================
SlideUp.xml
========================================
Bounce.xml
источник
Вы можете перезаписать анимацию активности по умолчанию. Вот решение, которое я использую:
Создайте «CustomActivityAnimation» и добавьте его в базовую тему с помощью «windowAnimationStyle».
Создайте папку anim в папке res, а затем создайте следующие четыре файла анимации:
slide_in_right.xml
slide_out_left.xml
slide_in_left.xml
slide_out_right.xml
Это мой пример проекта в github.
Вот и все ... Удачного кодирования :)
источник
Также вы можете сделать это:
И вам не нужно добавлять анимацию XML
источник
Я не смог найти никакого решения для этого типа анимации, используя ViewPropertyAnimator.
Вот пример:
Планировка:
Анимация - справа налево и выход из вида:
Анимация - справа налево введите вид:
источник
Если ваш уровень API 19+, вы можете использовать его,
translation
как указано выше. Если ваш уровень API меньше 19, вы можете взглянуть на аналогичное руководство: http://trickyandroid.com/fragments-translate-animation/источник
Для справа налево слайд
Рез / аним / in.xml:
Рез / аним / out.xml:
в файле активности Java:
Вы можете изменить длительность в XML-файлах для более длинной или короткой анимации слайдов.
источник