【问题标题】:How to make SharedElement to works in viewPager fragment inside a fragment如何使 SharedElement 在片段内的 viewPager 片段中工作
【发布时间】:2016-10-16 15:39:42
【问题描述】:

我的情况是我只有 1 项活动。首先,它显示fragment1,在该片段内,我有一个recyclerView 来显示cardviews 列表,在每个CardView 内,都有一个图像。当用户点击每个 CardView 时,fragment1 将被 Fragment 2 替换。 Fragment2 包含一个 viewPager,viewpager 显示与 fragment1 中的 recyclerView 相同的数据,但更具体。我想在fragment1 中的image1 到fragment2 中的image2 之间制作一个shareElement 动画。 我所做的是: recyclerView的OnLickListener,我通过item的代码为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 的片段中,我用片段 1 发送的 transitionName 更新 image2

@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 似乎不起作用。有什么解决办法吗?

【问题讨论】:

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


【解决方案1】:

这篇博文旨在为 Android Fragment 之间的特定连续转换提供指南和实现。我们将演示如何实现从 RecyclerView 中的图像到 ViewPager 中的图像的转换,并使用'Shared Elements' 来确定哪些视图参与转换以及如何参与。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多