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

时间:2019-07-04 20:16:51

标签: android android-activity android-transitions

我想用特定的目标视图(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 :(得分:0)

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

更改过渡的推荐方法是

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

答案 1 :(得分:0)

必须在调用ActivityOptions.makeSceneTransitionAnimation之前设置退出转换。

我通过查看以下类来弄清楚了:

ActivityTransitionCoordinator

ExitTransitionCoordinator