我正在使用共享元素转换从一个 Activity 转到另一个 Activity 。我有一个带有几个 child 的父布局,我正在尝试使用共享元素转换将它们设置为详细 View 。我推了一个示例 repo here on github 。
转换在 Android 模拟器、我的 Pixel 和尚未更新到 Nougat 7.0 的三星手机上运行良好。在运行 7.0 的三星设备上,容器内的图像和文本无法正确设置动画。在我的示例应用程序中,顶部容器是在三星设备上有问题的容器,底部是它应该始终看起来的样子。 Here is how it looks on a Samsung device 。
查看代码,您可能会问为什么不采用仅对容器进行动画处理的第二种解决方案,然后再用它对内部进行动画处理。我已经看到,对于某些布局,Android 只是没有正确地为内部设置动画,有时甚至根本没有。所以我诉诸于指定将成为共享元素转换的每个 View 。有没有其他人遇到过这个问题?
最佳答案
我在三星设备上遇到了同样的问题,但我没有测试牛轧糖与以前的操作系统。
如果可能,尝试仅转换 TextView 上没有 transitionName
属性的 ViewGroup。
<LinearLayout
...
android:transitionName="ViewGroupTransition">
<!-- No transitions on the TextViews -->
<TextView
android:id="@+id/my_text_view1"
...
/>
<TextView
android:id="@+id/my_text_view2"
...
/>
</LinearLayout>
将 transitionNames 添加到此处的 TextViews 会导致过渡无法如您所描述的那样工作。如果过渡的目标 View 中存在类似的 TextView,则不应要求 transitionNames 来完成 TextView 之间的过渡。
关于android - 三星牛轧糖 7.0 共享元素过渡问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43854698/