Анимация переключения между действиями

Хорошо, у меня проблема. Я реализовал SlideMenu с библиотекой jfeinstein10. Я переключаюсь между различными элементами (все FragmentActivities) с помощью startActivity() и Intents. Для обычного перехода я использую overridePendingTransition. Почти все Activity — это ViewPagers с TabPageIndicator от Jake Wharton.

Дело в том, что я использую собственный макет (стиль карты Google Now) с анимацией. Анимация одного слайда вверх и одного слайда вниз. Я расширил LinearLayout, и для анимации я перебираю дочерние элементы (карточки) и запускаю анимацию для каждого дочернего элемента. Карточки — это RelativeLayouts, добавленные в пользовательский LinearLayout.

Моя идея заключалась в том, что после запуска приложения карты скользят вверх снизу вверх (например, Google Now), и когда я переключаю действия, карты из текущего действия скользят вниз, а теперь пустое действие переключается на новое действие с исчезновением (через overridePendingTransition) и карточки из нового Действия скользят вверх.

Я пытался использовать onGlobalLayoutListener для слайдов вверх, но это ведет себя странно в ViewPager (первая вкладка скользит вверх, вторая остается на месте, а третья тоже скользит вверх). Анимация должна появляться только после запуска приложения или переключения между действиями.

Что касается анимации скольжения вниз, я понятия не имею. Я попытался создать дополнительный метод в своем пользовательском макете и запустить его с помощью onPause() - вообще не работает.

Поэтому я хотел спросить, есть ли у кого-нибудь идея? Или это вообще возможно? Эта проблема действительно сводит меня с ума :D

Изменить:

http://pastebin.com/8mDefv50 Мой макет NowLayout

и это https://github.com/jfeinstein10/SlidingMenu/blob/master/example/src/com/slidingmenu/example/fragments/ResponsiveUIActivity.java в основном является моим базовым пользовательским интерфейсом (тот же метод с content_frame и проверкой menu_frame). Само меню содержит несколько кнопок, которые запускают различные FragmentActivities.

FragmentActivities управляет только ViewPager. Настоящий контент и NowLayout используются во фрагменте для ViewPager.

Итак, моя проблема заключается в том, чтобы получить доступ к анимации в MenuFragment красивым способом. В основном получается NPE, потому что переключение выполняется в MenuFragment, который содержит только кнопки. Может быть, я медленно соображаю или мне не хватает леса за деревьями :D


person vork    schedule 13.03.2013    source источник


Ответы (1)


Анимацию слайда вниз вы должны выполнить ПЕРЕД вызовом Intent для нового действия, а не onPause(), так как уже слишком поздно.

Поэтому, когда вам нужно перейти вперед или назад от текущего действия - выполните анимацию слайда вниз, поместите прослушиватель в конец этой анимации и только затем выполните finish() / startActivity() по мере необходимости.

person yarons    schedule 13.03.2013
comment
Пробовал это раньше. Отредактировал первый пост с дополнительной информацией - person vork; 14.03.2013