微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么时候在Android Transition中调用captureStartValues和captureEndValues?

如何解决什么时候在Android Transition中调用captureStartValues和captureEndValues?

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

解决方法

回答自己:

我用Android自己的过渡进行了更深入的调试,发现回调captureStartValuescaptureEndValues不在一个动画中发生。片段退出动画将调用captureStartValues,片段进入动画将被调用captureEndValues。因此,例如:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。