如何使SharedElement在片段

时间:2016-10-16 15:39:43

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

我的情况是我只有一项活动。首先,它显示fragment1,在该片段内,我有一个recyclerView来显示一个cardview列表,在每个CardView中,有一个图像。当用户点击每个CardView时,fragment1将被片段2替换.Fragment2包含一个viewPager,viewpager在fragment1中显示与recyclerView相同的数据,但更具体。我想在fragment1中的image1和fragment2中的image2之间创建一个shareElement动画。 enter image description here 我做的是: 在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不起作用。对此有何解决方案?

0 个答案:

没有答案