android-fragments - Android - Recyclerview 共享元素过渡项位置

标签 android-fragments android-recyclerview shared-element-transition

我希望你能帮助我解决这个问题。我有两个片段,第一个是带有多个图像的回收 View ,第二个片段是该图像的详细信息 View 。如果用户单击图像,应用程序会执行片段交易并显示详细信息。

我已经成功实现了片段之间的共享元素转换,如果我单击第一个片段上的小图像,它会变大并移动到详细信息 View 上的最终位置。

那么,问题来了,图像的初始位置不是预期的,它开始从其原始位置移动几个像素,当我单击图像时,图像会向右和底部跳跃一点。

为什么会这样?这很烦人!

过渡xml:

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <changeTransform />
    <changeBounds />
</transitionSet>

如果我对 recyclerview 之外的按钮做同样的事情,它就可以完美运行。这是回收站 View 中的某种错误吗?

最佳答案

您的 RecyclerView 项目需要在其共享 View 上设置唯一的过渡名称。如果你想象你的 RecyclerView 渲染的布局层次结构,其中会有很多具有相同过渡名称的项目( View )。这样就不清楚实际共享元素是哪个过渡。例如,您可以将位置附加到 View 转换名称,例如transition1、transition2 等。 现在当你开始你的细节片段时,你必须将过渡名称交给它,并将这个名称设置为细节片段中的共享 View ,例如在 onViewCreated() 中。

关于android-fragments - Android - Recyclerview 共享元素过渡项位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694607/

相关文章:

android - 登录 Instagram 应用程序时背景如何变化?

android - 从 ActionBar 选项卡获取当前 fragment

android - 如何从 Activity 中返回 fragment

android - 在 RecyclerView.Adapter 中绑定(bind) View 时出现 NullPointerException

android - 返回到被调用 Activity 时,共享元素转换在 android 10(Q) 中不起作用

android - 更改 fragment 中 LinearLayout 的权重 - Android Studio

android - 在 RecyclerView 中播放视频 - 滚动到屏幕外时播放/暂停视频

java - 将 Activity 中的数据获取到 RecyclerView 适配器中?

android - 从 fragment 过渡到 fragment 时工具栏闪烁

android - 在不同方向的 Activity 之间使用共享元素转换