【问题标题】:When are captureStartValues and captureEndValues called in Android Transition?什么时候在 Android Transition 中调用 captureStartValues 和 captureEndValues?
【发布时间】:2020-08-31 18:12:12
【问题描述】:

我正在使用自定义过渡动画为片段制作动画。为此,我对 Transition 进行了子类化,并在创建 Fragment 视图时分别使用 Transition 子类分配 enterTransitionexitTransition。我看到过渡发生但没有动画。我通过在captureStartValuescaptureEndValues 中放置断点来调试它,但它从未被调用过。我想了解何时调用这些函数?我的开始和结束值是动态计算的,我不太确定如何将它们传递给 Transition,或者我应该如何将它们分配给视图以使转换捕获它们?

【问题讨论】:

    标签: android android-fragments android-animation android-transitions


    【解决方案1】:

    回答我自己:

    我使用 Android 自己的转换进行了更深入的调试,发现 captureStartValuescaptureEndValues 两个回调都不会在一个动画中发生。 captureStartValues 将被调用用于片段退出动画 captureEndValues 将被调用用于片段进入动画。例如:

    incomingFragment.apply {
        this.exitTransition = Slide(Gravity.TOP) // This will use 'captureEndValues' in Slide Transition
    }
    fragmentManager.beginTransation() { ... } // Will invoke the call
    

    过渡的起始值将是视图的当前位置。虽然您可以通过一些计算来设置过渡中的起始值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-30
      • 2016-01-15
      • 1970-01-01
      • 2019-12-25
      • 2014-03-27
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多