Android共享元素转换 - 防止共享元素被绘制

11

我正在开发一种自定义Transition,以仅动画显示部分可见的Shared View,即它部分可见的情况下。

在我的情况下,这是因为Shared View位于ConstraitLayout内,而ConstraitLayout位于ScrollView内。

我在另一个问题中提到了这个问题: Shared element transition - animate only the visible part of the shared view

这是系统选择的默认transition:

enter image description here

这是我正在处理的内容:

enter image description here

动画本身效果很好...但问题是系统在动画开始前绘制完整的共享视图...这样会出现一个丑陋的闪烁。

我该怎么防止这种情况发生?

我已经在我的样式上添加了:

<item name="android:windowSharedElementsUseOverlay">false</item>


你能提供你项目的GitHub链接吗?只添加相关文件以解决这个问题。 - iamgopal
1个回答

1
在您的目标Activity中,添加一个ActionBar,就像源Activity中的那个一样,以便自然地覆盖您共享元素的相同部分。您可能需要在Activity之间传递extras来配置目标ActionBar。

1
我不理解为什么我需要在目标活动中添加相同的工具栏,除此之外,这只是一个示例。如果覆盖SharedView的视图不是工具栏,并且位于屏幕上的另一个位置,会发生什么? - Oscar Méndez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接