小编phu*_*ieu的帖子

如何使SharedElement在片段内的viewPager片段中工作

我的情况是我只有一项活动.首先,它显示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());
Run Code Online (Sandbox Code Playgroud)

替换framgent和addShareElement:

  fragmentTransaction
                .replace(R.id.fragment, sharedElementFragment2, FragmentEnum.FEED.toString())
                .addToBackStack(null)
                .addSharedElement(image1,image1.getTransitionName())
                .commit();
Run Code Online (Sandbox Code Playgroud)

在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()+"");

    }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我试图将image2放在viewpager之外(直接在片段2下)并且它可以工作.看来,当viewPager中的目标元素时,shareElement不起作用.对此有何解决方案?

android android-fragments shared-element-transition

6
推荐指数
1
解决办法
471
查看次数