如果未在 onCreate 中设置,则 ExitTransition 不起作用

ExitTransition doesn't work if not set up in onCreate

我想用特定的目标视图 (addTarget) 设置我的退出过渡,我只在用户单击一个项目后才知道,因此我只在开始新的 [=19= 之前实例化它].

但是,这种退出转换根本不适用,没有 addTarget 调用的事件。当我返回并再次启动 activity with transition 时,它运行良好。

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)
}

我第一次也可以进行转换吗?

我认为这是正确的行为,但如果没有代码示例就很难知道。

更改转换的推荐方法是

// 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。我在旧版本中遇到了一个问题,我第一次刷新应用程序时按钮的行为总是不同。

必须在调用 ActivityOptions.makeSceneTransitionAnimation 之前设置退出转换以使其工作。

我通过查看这些 类:

弄明白了

ActivityTransitionCoordinator

ExitTransitionCoordinator