我试图在我用XML定义的动画中使用propertyValuesHolder
objectAnimator
。{I}。当我加载它时,抛出运行时异常,原因为Unknown animator name: propertyValuesHolder
这是直接从ObjectAnimator
文档here获取的完整动画:
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:repeatCount="1"
android:repeatMode="reverse">
<propertyValuesHolder android:propertyName="x" android:valueTo="400"/>
<propertyValuesHolder android:propertyName="y" android:valueTo="200"/>
</objectAnimator>
我使用以下代码加载并启动动画:
Animator animator = AnimatorInflater.loadAnimator(getApplicationContext(), R.animator.example);
animator.setTarget(view);
animator.start();
我从堆栈跟踪中得到的原因是:
Caused by: java.lang.RuntimeException: Unknown animator name: propertyValuesHolder
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:592)
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:551)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:122)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:102)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:87)
当我使用不包含propertyValuesHolder
的动画时,此功能正常。我无法在网上找到任何在XML中使用该标签的示例。我做错了什么或者它不起作用?
答案 0 :(得分:2)
我认为原因是在Lollipop之前不支持 propertyValuesHolder XML元素。
如果您查看AnimatorInflater,您会看到第一次引用PropertyValuesHolder类,其中有5.0。