三星Nougat 7.0共享元素转换问题

时间:2017-05-08 18:21:01

标签: android shared-element-transition

我正在使用共享元素转换从一个活动转到另一个活动。我有一个带有几个孩子的父布局,我正在尝试使用共享元素转换将它们设置为详细视图。我推出了一个样本仓库here on github

转换在Android模拟器,我的Pixel和尚未更新为Nougat 7.0的三星手机上运行良好。在运行7.0的Samsung设备上,容器内的图像和文本没有正确设置动画。在我的示例应用程序中,顶部容器是三星设备上存在问题的容器,底部容器应该始终如何显示。 Here is how it looks on a Samsung device

查看代码,您可能会问为什么不只是使用仅动画容器的第二个解决方案,然后使用它动画内部动画。我已经看到了一些布局,Android只是没有正确地为内部设置动画,有时甚至根本没有。所以我已经使用了指定将成为共享元素转换的每个视图。还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

尽管没有在Nougat和以前的操作系统之间进行测试,我还是遇到了与三星设备相同的问题。

如果可能的话,尝试在TextViews上过渡 just 不具有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会导致过渡无法如您所描述的那样正常工作。如果过渡的目标视图中存在相似的TextView,则不需要过渡名称来完成TextView之间的过渡。