我正在使用自定义转换动画动画片段。为此,我进行了子类转换,在创建片段视图时,我分别使用enterTransition
子类和exitTransition
子类分配Transition
。我看到转变正在发生,但没有动画。我通过在captureStartValues
和captureEndValues
中添加断点来调试它,但它从未被调用。我想知道这些函数究竟是什么时候被调用的?我的开始值和结束值是动态计算的,我不太确定如何将它们传递给转换,或者如何将它们分配给一个视图来捕获它们?
发布于 2020-09-01 22:47:04
回答我自己:
我用Android自己的转换做了更深入的调试,发现captureStartValues
和captureEndValues
这两种回调都不是在一个动画中发生的。captureStartValues
将被调用为片段退出动画,captureEndValues
将被调用为片段进入动画。例如:
incomingFragment.apply {
this.exitTransition = Slide(Gravity.TOP) // This will use 'captureEndValues' in Slide Transition
}
fragmentManager.beginTransation() { ... } // Will invoke the call
转换的起始值将是视图的当前位置。尽管您可以使用一些计算来设置转换中的开始值。
https://stackoverflow.com/questions/63676041
复制