2016-04-28 106 views
2

我有一个自定义Transition用于我的两个活动之间的共享元素。为什么Transition.captureStartValues和Transition.captureEndValues具有相同属性的View?

我的转换不起作用,因为TransitionValues参数具有相同的View在两种方法中具有相同的属性,captureStartValuescaptureEndValues。所以,一旦开始和结束值相同,我的转换就没有办法做。

为什么会发生这种情况?

+0

活动转换并不实际上将视图从一个活动转移到另一个活动。相反,它会传输位置,大小和高程,并在该位置传递共享元素View。如果你需要转移别的东西,那是你自己去做的。 –

+0

但是,当我构建共享元素中使用的自定义过渡时,我需要从开始和结束场景中捕获这些不同的值。如果视图和属性相同,我怎么能得到这些值? –

+0

例如。我想动画我的英雄视图的scrollX属性。 在我的ActivityA布局中,我的英雄视图有scrollX = 10. 在我的ActivityB的布局中,它具有scrollX = 50. 我无法为从ActivityA到ActivityB的转换设置动画效果,因为captureStartValues和captureEndValues始终使用View来调用scrollX = 50. –

回答

0

您必须使用setEnterSharedElementCallback设置SharedElementCallback并覆盖onSharedElementStart和onSharedElementEnd并在开始和结束处设置滚动。当它反转时,在开始之前调用结束以反转过渡。

+0

我在我的活动中的布局xml中设置了这些滚动值。我只想读取这些值,以便在我的自定义转场中制作动画师。 –

相关问题