RecyclerView共享转换和项目动画师不兼容?

时间:2017-03-07 21:43:18

标签: android android-recyclerview android-transitions

我已经工作了好几天来解决我在recyclerView上遇到的问题。 我不会详细说明,因为这是一个非常“高级”的问题。

我有一个包含特定顺序的项目的RecyclerView,以及一个允许编辑项目内容的详细活动。 内容可以改变调用活动的RecyclerView中的项目顺序。

我有一个与Detail活动之间的共享项目转换。 问题是,当我做出影响物品订单的更改时,返回到RecyclerView项目的共享转换始终转到上一个项目位置,而不是新项目位置。

简而言之,我推迟了活动重新进入中的输入转换,使用适配器数据观察器“等待”数据更改(如果尚未),确定新项目位置,滚动到该位置然后开始推迟进入过渡。

调试记录它,甚至是onMapSharedElements和onCaptureSharedElementSnapshot,似乎一切都应该没问题,但事实并非如此。结果是共享项目设置为前一个位置的动画,然后跳转到新位置。

但是我找到了解决这个问题的方法,当我调用Detail并在开始推迟转换后重新启用它时,禁用RecyclerView的项目动画师。似乎项目动画师伪造/干扰共享过渡的东西。

问题是,解决这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

在这种情况下,使用带有结果代码的startActivityForResultonActivityReenter是要使用的方法。

调用onActivityReenter后,您可以推迟转换,重新订购商品,然后将共享视图返回到新位置。

这是一项正在实施的工作example available for this use case