码迷,mamicode.com
首页 > 移动开发 > 详细

Android编程之Fragment使用动画造成Unknown animation name: objectAnimator异常

时间:2014-07-01 14:33:01      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:animation   unknown animation na   objectanimator异常   android   fragment动画效果   

在为Fragment做切换动画,启动后遇到了一个异常:

Caused by: java.lang.RuntimeException: Unknown animation name: objectAnimator

截图如下:

bubuko.com,布布扣


我的代码如下:

    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方法。我这里就直接贴图了:

bubuko.com,布布扣


标记处的那个位置,就是关键代码。在这里面才会处理与objectAnimator相关的标签,如截图所示:

bubuko.com,布布扣

所以,才会造成标题上那个异常。


这里我再延伸一些内容:那么V4包中的Fragment支持哪些动画标签内呢?看一下V4包中源码截图:

bubuko.com,布布扣

那个错误异常,也就是这里报出来的。


那么,是不是就不能为Fragment切换使用objectAnimator的动画标签呢?

当然也不是不能,如果你非要使用这个动画,就请使用源码中的Fragment,它是没有注释掉那段动画加载代码的。


小结:
在使用V4包中Fragment时,使用的切换动画效果,其动画文件中不能包含objectAnimator,Animator这类标签。如果必须要使用,请将工程中使用的V4包中Fragment相关类,换成源码中的Fragment
相关类。


最后,附上那个我要做的动画效果:一个翻牌的切换效果,是基于APIDemo修改的代码:

http://download.csdn.net/detail/xyz_fly/7576099


Android编程之Fragment使用动画造成Unknown animation name: objectAnimator异常,布布扣,bubuko.com

Android编程之Fragment使用动画造成Unknown animation name: objectAnimator异常

标签:animation   unknown animation na   objectanimator异常   android   fragment动画效果   

原文地址:http://blog.csdn.net/xyz_fly/article/details/36179515

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!