我想在从活动A切换到活动B时执行共享元素转换。问题是当共享的imageViews 比例类型不同时,转换动画无法顺利运行。我注意到在转换的最初阶段出现“反弹”(我认为没有动画的imageView scaleType更改)。当我从活动B回到活动A时,我注意到了同样的“反弹”。
详细说明:
活动A包含带 scaleType:centerCrop 的imageView。 Actvity B包含带有 scaleType:fitXY 的imageView。
当然,ImageView都有android:transitionName="sharedView"
。
我在xml中设置的转换如下所示:
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeBounds/>
<changeImageTransform/>
</transitionSet>
在有关此配置的文档中写道:
与ChangeBounds结合使用,ChangeImageTransform允许 ImageViews可以更改大小,形状或 ImageView.ScaleType 以进行动画处理 内容顺利。
那么为什么我的过渡不顺利呢?或者如果changeBounds
changeImageTransform
似乎不起作用,如何在共享元素转换期间为scaleType更改制作动画?
值得一提的是,如果我使共享视图的比例等级(例如centerCrop和centerCrop) - 那么转换工作顺利,一切正常。
答案 0 :(得分:0)
我已经解决了这个问题。您需要检查以下内容:
ImageView
(不要使用任何容器)。transitionName
。我对此进行更新后,changeImageTransform
将在2 ImageView
s
答案 1 :(得分:-1)
有同样的问题。通过为padding
和ImageView
设置相同的int mLastSelectedIndex = -1;
属性来解决此问题。我不知道为什么会这样,但希望它可以帮助别人。