在为Fragment做切换动画,启动后遇到了一个异常:
Caused by: java.lang.RuntimeException: Unknown animation name: objectAnimator
截图如下:
我的代码如下:
fragment = Fragment.instantiate(getActivity(), clz.getName());
fragment.setArguments(args);
ft.setCustomAnimations(R.animator.fragment_rotate_enter,
R.animator.fragment_rotate_exit,
R.animator.fragment_rotate_pop_enter,
R.animator.fragment_rotate_pop_exit);
ft.replace(R.id.fragment_stub, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
我的动画文件如下,其他三个大同小异,就不贴出来了 :
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<objectAnimator
android:duration="1000"
android:propertyName="rotationY"
android:valueFrom="180.0"
android:valueTo="360.0"
android:valueType="floatType" />
<objectAnimator
android:duration="1000"
android:propertyName="alpha"
android:valueFrom="0.0"
android:valueTo="1.0"
android:valueType="floatType" />
</set>
对于这个异常,网上有很多说法,但我看了下解释,都没有切中要害。在这里,我给具体讲一下原因:
第一是因为我使用了objectAnimator这个动画标签,
第二是因为Fragment我使用的是V4包中的。
原因就在这里:V4包中的Fragment对于动画的支持不完全。如果手中有V4源代码的同学,可以翻出来具体看看——在FragmentManager类中的loadAnimation方法。我这里就直接贴图了:
标记处的那个位置,就是关键代码。在这里面才会处理与objectAnimator相关的标签,如截图所示:
所以,才会造成标题上那个异常。
这里我再延伸一些内容:那么V4包中的Fragment支持哪些动画标签内呢?看一下V4包中源码截图:
那个错误异常,也就是这里报出来的。
那么,是不是就不能为Fragment切换使用objectAnimator的动画标签呢?
当然也不是不能,如果你非要使用这个动画,就请使用源码中的Fragment,它是没有注释掉那段动画加载代码的。
小结:
在使用V4包中Fragment时,使用的切换动画效果,其动画文件中不能包含objectAnimator,Animator这类标签。如果必须要使用,请将工程中使用的V4包中Fragment相关类,换成源码中的Fragment相关类。
最后,附上那个我要做的动画效果:一个翻牌的切换效果,是基于APIDemo修改的代码:
http://download.csdn.net/detail/xyz_fly/7576099
分享到:
相关推荐
Android下Fragment的动画切换效果 ,基于Eclipse,可运行
Android Fragment切换动画
Android fragment切换动画
androidx-fragment-1.1.0.aar
fragment切换动画的特效库
Android之Fragment的基本使用 详细见博客:http://blog.csdn.net/whitley_gong/article/details/50098729
Fragment的概念是从Android3.0开始引入的,直译为碎片、片段,目的是为不同屏幕大小的设备(手机、平板等)创建灵活动态的UI。诚如其名,你可以把Fragment当作是Activity的模块化组件,它拥有自己的生命周期和UI,接受...
android fragment 底部动画菜单 玩爆所有菜单效果 代码超级简单 android2.0以上都通用
Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)
Android开发之fragment之replace用法更多请查看博客说明:https://blog.csdn.net/xiayiye5/article/details/80619827
Android 静态加载fragment,参考博客: http://blog.csdn.net/u010661782/article/details/51790987
android studio popwindow fragment,实现按钮点击切换界面
安卓app开发之Android Fragment使用教程.zip
Android下Fragment的使用,详细可以参见博客:http://www.cnblogs.com/plokmju/p/android_Fragment.html
Android下21中fragment切换的动画,效果非常棒,基于Android3.0以上
Android Fragment的使用。 功能:用一个Activity来管理两个Fragment,并且在其中一个Fragment中,点击按钮,影响到第二个Fragment。Activity中用list来管理Fragment。fragment布局采用垂直排列。
android fragment 使用以及嵌套使用 底部菜单和顶部菜单,类似微信和QQ的分页菜单
**Android项目:Fragment动画效果** 本项目专注于为Android开发者提供一套全面且高效的Fragment动画效果实现方案。通过使用这个资源,您可以轻松地为您的应用程序添加吸引人的过渡动画,从而提升用户体验。 **资源...
Android Fragment使用示例
详情见博客:https://blog.csdn.net/qq_20785431/article/details/100519075