在Android ViewPager中*替换*片段时应用自定义动画

在Android ViewPager中*替换*片段时应用自定义动画,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我的应用程序执行以下操作: ViewPager中有一组“卡片”。当用户左右滑动时,用户可以通过PageTransformer动画在卡片/页面中滑动 用户可以使用卡翻转动画(如中所述)在查看卡的正面和背面之间切换 我需要支持API 14+ 我尝试过各种方法,但每种方法都有问题 方法1:嵌套片段 我在顶层有一个ViewPager,可以在“卡片容器”片段之间滑动。每个卡容器片段负责处理翻转,方法是将FrameLayout的内容替换为前/后卡片段 问题:这很好,但仅适用于API 17+,我需要支持A

我的应用程序执行以下操作:

  • ViewPager
    中有一组“卡片”。当用户左右滑动时,用户可以通过
    PageTransformer
    动画在卡片/页面中滑动

  • 用户可以使用卡翻转动画(如中所述)在查看卡的正面和背面之间切换

  • 我需要支持API 14+

我尝试过各种方法,但每种方法都有问题

方法1:嵌套片段 我在顶层有一个
ViewPager
,可以在“卡片容器”片段之间滑动。每个卡容器片段负责处理翻转,方法是将
FrameLayout
的内容替换为前/后卡片段

问题:这很好,但仅适用于API 17+,我需要支持API 14+

方法2:使用v4支持库的嵌套片段 将所有片段、活动等更改为v4替代方案消除了编译器关于需要API 17的警告,但卡翻转动画不再工作,我收到一个错误“java.lang.RuntimeException:未知动画名称:objectAnimator”

我宁愿避免使用支持库类(v13支持中的
ViewPager
除外),因为应用程序的其余部分使用本机片段,我宁愿保持一致

方法3:避免嵌套片段,而只是在ViewPager中替换片段 这是我喜欢的方法。有一个顶级的
ViewPager
,而
FragmentStatePagerAdapter
根据我们是否查看前/后来决定返回哪个片段

按下翻转按钮时,ViewPager中的页面无效,并且
FragmentStatePagerAdapter
被迫再次调用
getItem()
,为卡的另一侧返回新的片段。我得到了他的一点帮助

这几乎可以工作了,但我不知道如何应用卡片翻转动画,因为
ViewPager
使用magic替换片段,并且我无法访问片段事务或容器视图

因此,我的主要问题是,当使用
公共片段getItem(int I){…}
替换(而不是滑动)一个
ViewPager
页面时,如何应用自定义动画?


提前感谢您的帮助

在适配器中实现PageTransformer不会奏效吗+一个用于详细阐述的问题。