在XML定义的动画中使用时,PropertyValuesHolder会导致崩溃

Har*_*kin 6 android android-animation

我试图用一些propertyValuesHolderobjectAnimator在我在XML中定义的动画.当我加载它时,抛出运行时异常的原因Unknown animator name: propertyValuesHolder

这是直接从这里ObjectAnimator文档中获取的完整动画:

<?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>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码加载和启动动画:

Animator animator = AnimatorInflater.loadAnimator(getApplicationContext(), R.animator.example);
animator.setTarget(view);
animator.start();
Run Code Online (Sandbox Code Playgroud)

我从堆栈跟踪中得到的原因是:

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)
Run Code Online (Sandbox Code Playgroud)

这在我使用不包含动画的动画时有效propertyValuesHolder.我在网上找不到任何在XML中使用该标记的示例.我做错了什么或者它不起作用?

Evi*_*uck 2

我相信原因是在 Lollipop 之前不支持propertyValuesHolder XML 元素。

如果你看一下AnimatorInflater,你会发现 PropertyValuesHolder 类第一次被引用是在 5.0 中。