【问题标题】:ExitTransition doesn't work if not set up in onCreate如果未在 onCreate 中设置,ExitTransition 将不起作用
【发布时间】:2019-07-04 20:16:51
【问题描述】:

我想使用特定目标视图 (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)
}

我可以在第一次进行过渡吗?

【问题讨论】:

  • 我创建了一个sample app,这个过渡的后期初始化工作得很好。我会尝试找出我的应用程序的问题所在。
  • 好酷。很高兴你正在取得进展。从提供的信息中很难判断出问题所在。

标签: android android-activity android-transitions


【解决方案1】:

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

推荐的改变过渡的方法是

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

【讨论】:

【解决方案2】:

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

我通过查看这些类发现了这一点:

ActivityTransitionCoordinator

ExitTransitionCoordinator

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多