我试图使共享元素过渡工作与回收器视图内的元素。当用户点击我的回收商查看项目中的文本视图时,详细信息活动即会打开。在细节活动内部,我展示了一些信息,并且我也有一个选项卡布局,可以使用picasso从url加载一些图像。过渡到细节活动正在工作,但如果用户在加载所有图像之前返回到主活动,主活动中的回收站视图将在逆向动画之后消失!当我禁用共享元素转换时,问题消失了。与RecyclerView项目共享元素过渡 - Android
这两项活动都适用于碎片。所以,我试图在两个片段之间创建一个转换,这些片段处于不同的活动中。
在RecyclerViewAdapter,我设定的转换名:
public void onBindViewHolder(final ViewHolder viewHolder, int position) {
...
viewHolder.profileImage.setTransitionName("profile"+position);
onClickListener我的TextView的(在主要活动的片段内):
Intent i = new Intent(getCurrentActivity(), DetailActivity.class);
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(getCurrentActivity(), (View) profileImage, "profile"+position);
getCurrentActivity().startActivity(i, options.toBundle());
详细活动的片段具有共享内元素(在onCreateView中):
profileImage.setTransitionName("profile"+position);
我已经检查了trans当意图发生时两个活动中的ition名称相同。
我被困在这个问题两天,看不见发生了什么事情。如果您需要更多信息或代码,只需询问。
谢谢!
我不知道,如果该事项,但两个活动(主要和详细信息)的片段,这样的意图,详细活动从主要活动的片段和setTransitionName称为( )的第二个活动在其片段的onCreateView()内调用。 –
当然你会有这个问题。毕加索是在BackGround上的一个异步调用,如果它没有完成任务,那么你移动到另一个Activity,这是你的MainActivity。来自毕加索的异步电话将被暂停。 @G_comp。我不认为他正在使用碎片,因为你设置了碎片交易的过渡。 – Aizen
@Aizen,但问题发生在共享元素转换启用时,所以我不认为这是毕加索的错误。当我禁用共享元素转换时,我可以在加载图像之前返回主活动 –