ExitTransition не работает, если не настроен в onCreate - PullRequest
0 голосов
/ 04 июля 2019

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

Однако, таким образом, выходной переход вообще не применяется, событие без вызовов addTarget.Когда я возвращаюсь назад и снова начинаю упражнение с переходом, оно работает хорошо.

private fun onItemClick(id: Long) {
  window.exitTransition = Slide(Gravity.LEFT)

  val activityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(this, ..).toBundle()

  val intent = Intent(this, SettingsActivity::class.java)
  ActivityCompat.startActivity(this, intent, activityOptions)
}

Можно ли сделать так, чтобы переход также работал в первый раз?

Ответы [ 2 ]

0 голосов
/ 13 июля 2019

Выходной переход должен быть установлен перед вызовом ActivityOptions.makeSceneTransitionAnimation, чтобы он заработал.

Я понял это, посмотрев на следующие классы:

ActivityTransitionCoordinator

ExitTransitionCoordinator

0 голосов
/ 05 июля 2019

Я думаю, что это правильное поведение, но трудно понять без примера кода.

Рекомендованный способ изменения переходов:

// inside your activity (if you did not enable transitions in your theme)
with(window) {
    requestFeature(Window.FEATURE_CONTENT_TRANSITIONS)

    // set an exit transition
    exitTransition = Explode()
}

как обсуждено здесь: https://developer.android.com/training/transitions/start-activity


Если у вас возникла эта проблема именно в эмуляторе AndroidStudio, возможно, вы захотите обновить AndroidStudio. У меня была проблема в старой версии, где поведение кнопки всегда было разным в первый раз, когда я обновлял приложение.

...