Представления переходят индивидуально/отдельно при использовании переходов активности

Я пытаюсь создать эффект слайда для одного из действий моих приложений для Android, аналогичный анимации/переходу входа в действие создания приложения Gmail, но без анимации выхода из предыдущего действия. Согласно моим исследованиям, есть два способа добиться этого:

  1. overridePendingTransition(R.anim.slide_in_bottom, R.anim.stay) после startActivity() в действии A и overridePendingTransition(R.anim.stay, R.anim.slide_out_bottom) после finish() в действии B. Проблема с этим подходом: мне нужно установить прослушиватели для анимации входа/перехода в действии B, чтобы выполнять дальнейшие анимации, и я не делаю этого. хотите использовать предполагаемую задержку в onCreate(). В остальном этот подход работает безупречно.

  2. Использование «нового» (на самом деле уже не) API-интерфейса Activity Transitions для выполнения android.transition.Slide как для входа, так и для выхода из Activity B с краем слайда, установленным внизу. Проблема с этим подходом: Это странное разделение/индивидуальный переход представлений вводится при использовании этого подход. (Не вставляя сюда код, поскольку в этом нет необходимости, я использую слайд из набора переходов в xml или конструктор по умолчанию в коде)

Итак, мой вопрос: есть ли способ получить реального слушателя для подхода 1, о котором я не знаю, или есть способ устранить это странное разделение с подходом 2, и если да, то как?


person Julian Os    schedule 30.01.2017    source источник


Ответы (2)


Поместите виды, которые должны быть анимированы, в «Группу переходов».

person karim23697    schedule 30.01.2017
comment
Попробую это! - person Julian Os; 31.01.2017
comment
В общем, это работает, но я не знаю, как заставить фон строки состояния совместно использовать TransitionGroup с содержимым Activity. Установка для isTransitionGroup значения true в DecorView, похоже, этого не делает... - person Julian Os; 02.02.2017

Вы можете создать прослушиватель для подхода №1, используя Otto. По сути, это шина событий, предоставляющая механизм, который вы можете использовать для связи с различными частями вашего приложения.

person nullbyte    schedule 30.01.2017
comment
Я не думаю, что стоит добавлять в приложение столько (на самом деле) избыточного кода/раздувания. - person Julian Os; 30.01.2017