我的情况是我只有一项活动。首先,它显示fragment1,在该片段内,我有一个recyclerView来显示一个cardview列表,在每个CardView中,有一个图像。当用户点击每个CardView时,fragment1将被片段2替换.Fragment2包含一个viewPager,viewpager在fragment1中显示与recyclerView相同的数据,但更具体。我想在fragment1中的image1和fragment2中的image2之间创建一个shareElement动画。 我做的是: 在recyclelerView的OnLickListener中,我按项目代码设置了image1的transitionName
image1.setTransitionName(item.getContentID().toString());
替换framgent和addShareElement:
fragmentTransaction
.replace(R.id.fragment, sharedElementFragment2, FragmentEnum.FEED.toString())
.addToBackStack(null)
.addSharedElement(image1,image1.getTransitionName())
.commit();
在viewPager的片段中,我更新了image2,其中transitionName由片段1发送
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.findViewById(R.id.image2).setTransitionName(feed.getContentID()+"");
}
但它不起作用。我试图将image2放在viewpager之外(直接在片段2下)并且它可以工作。 看来,当viewPager中的目标元素时,shareElement不起作用。对此有何解决方案?