gpt4 book ai didi

android - 如何在 ViewPager fragment 中应用共享元素动画?

转载 作者:太空狗 更新时间:2023-10-29 15:26:12 24 4
gpt4 key购买 nike

我想在 ViewPager 中使用 SharedElement 从一个 Fragment 过渡到另一个 Fragment 为 View 设置动画。

我在 ViewPager 中有 3 个 fragment ,每个 fragment 在 XML 文件中都有一个具有相同转换名称的 TextView。

现在,当 ViewPager 滑动另一个 Fragment 时,我想看到 SharedElement 在运行。

最佳答案

我遇到了同样的问题。标准共享元素转换在 ViewPager 页面之间不起作用。

所以我写了一个Shared Element View Pager图书馆。它适用于由 onClick() 事件(例如 viewPager.setCurrentItem(x) )引起的转换和由用户引起的页面滑动。动画绑定(bind)到手指运动。

这不是 Android 转换,因此可能存在一些障碍。不过,请看一下。

SharedElementPageTransformer demo

用法

  1. 以相同顺序将 ViewPager 中的所有 fragment 添加到列表中。
        ArrayList<Fragment> fragments = new ArrayList<>();
fragments.add(hello_fragment);
fragments.add(small_picture_fragment);
  1. 大概在 Activity.onCreate() 中创建 SharedElementPageTransformer
    this 指的是 Activity :
        SharedElementPageTransformer transformer =
new SharedElementPageTransformer(this, fragments);
  1. 通过传递需要链接在一起的成对 View ID 添加共享转换
        transformer.addSharedTransition(R.id.smallPic_image_cat, R.id.bigPic_image_cat);
  1. 将我们的 transformer 设置为 ViewPager 的 pageTransformer AND onPageChangeListener。
        viewPager.setPageTransformer(false, transformer);
viewPager.addOnPageChangeListener(transformer);

关于android - 如何在 ViewPager fragment 中应用共享元素动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33410677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com