在Android ViewPager中* replacement * fragment时应用自定义动画

时间:2014-12-10 10:46:29

标签: android android-fragments android-viewpager

我的应用执行以下操作:

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

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

  • 我需要支持API 14 +

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

方法1:嵌套片段

我在顶层有一个ViewPager,它在“卡片容器”片段之间滑动。每个卡容器片段负责处理翻转,通过用前/后卡片段替换FrameLayout的内容。

问题:这很好但只在API 17+上,我需要支持API 14 +。

方法2:使用v4支持库

的嵌套片段

将所有片段,活动等更改为v4替代品会消除编译器关于需要API 17的警告,但卡片翻转动画不再有效,我收到错误“ java.lang.RuntimeException:未知动画名称:objectAnimator

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

方法3:避免嵌套片段,而只是替换ViewPager

中的片段

这是我的首选方法。有一个顶级ViewPagerFragmentStatePagerAdapter根据我们是正在查看前/后来决定返回哪个片段。

当按下翻页按钮时,ViewPager中的页面无效,FragmentStatePagerAdapter被迫再次调用getItem(),为卡片的另一侧返回一个新片段。我在this post的帮助下完成了这项工作。

这几乎正常,但我不知道如何应用卡片翻转动画,因为ViewPager使用魔法替换片段,我无法访问片段事务或容器视图。

所以我的主要问题是,如何使用ViewPager 替换(而不是刷卡)public Fragment getItem(int i) { ... }中的页面时应用自定义动画?

提前感谢您的帮助!

0 个答案:

没有答案