当前位置: 首页 > 知识库问答 >
问题:

MotionLayout支持片段之间的共享元素转换吗?

邹麻雀
2023-03-14

我正在考虑重构我的代码,以便将MotionLayout用于动画,但目前它严重依赖于共享元素转换。MotionLayout支持这一点吗?

我似乎在网上找不到任何关于这件事的信息。我发现一条tweet声明MotionLayout不处理活动之间的共享元素转换,但没有关于片段的信息。

共有1个答案

舒赞
2023-03-14

为了尽可能简洁地回答您的问题,是的,MotionLayout确实支持共享元素。但是,您当前的代码可能需要进行一些重新工作才能实现。MotionLayout通过在任何给定视图的两个定义约束之间插值来实现共享元素转换。因此,在片段转换中,可以在两个状态之间插值一个共享元素,但需要在场景文件中定义开始和结束。在这个链接中有一些有用的例子和代码,用于运动布局的片段转换,在这个链接中有一个很棒的逐步教程,用于开始使用你的运动布局场景文件。有任何问题,请随意评论这个答案。

 类似资料:
  • 我正在实现一个gallery应用程序,它有一个片段,其中包含一个带有图像的RecyclerView,单击一个图像,我会转到ViewPager循环浏览图像 目前,我正试图实现像本视频中那样的入门动画。问题是动画不起作用,我显然遗漏了一些东西(只是显示与转换相关的代码): 查看页面: GridAdapter: 在MainActivity中,我在onClick中实例化ViewPagerFragment:

  • 我一直在尝试实现这个共享元素转换,并在单击转换时不断出现“java.lang.IllegalArgumentException:共享元素不能为null”错误。请帮忙。 这是下面给出的MainActive onCreate方法。请检查我的代码。 这是recyclerView的onClickListener。 图像的过渡名称相同。这里的bug修复在使用共享元素的活动转换中出现问题并不是问题所在。 我卡

  • 我在Lollipop上的共享元素转换中看到了奇怪的事情。共享元素在开始动画之前闪烁(请看视频https://www.youtube.com/watch?v=DCoyyC_S-9A) 我不知道为什么会这样。但是,当我添加

  • 当完成活动时,我正在更新包含viewpager的活动中的视图及其名称,但它会闪烁:

  • 我有一个包含两个片段的FragmentActivity(support-v4)。并且都包含一个带有ActionBar的SearchView的菜单。 PlayListFragment: 附注。 我找到了原因,但没有解决方法: 呼叫 如何禁用ActionBar/SearchView/TextView的保存和还原?

  • 我已经研究这个问题几个星期了,但我仍然无法解决这个问题。 我有一个CardView,它包含一个带有ImageView的线性布局。 没有那个半径共享元素过渡可以无缝工作。但是,当我将半径(app: cardCornerRadius="25dp")添加到CardView时,共享元素过渡看起来很难看,因为它首先删除半径,然后开始动画。 第一种方法:ObjectAnimator 我创建ObjectAnim