在目标上找不到类型为 int 的方法 setX() class class android.view.View

Method setX() with type int not found on target class class android.view.View

我正在使用 android 属性 动画为我的 Android 应用创建动画。 我在 res/animator/ directory.

中创建了一个 XML 文件
<?xml version="1.0" encoding="utf-8"?>
<set android:ordering="sequentially" xmlns:android="http://schemas.android.com/apk/res/android">
    <objectAnimator
        android:propertyName="x"
        android:duration="500"
        android:valueFrom="0"
        android:valueTo="400"
        android:valueType="intType"/>
</set>

我使用 AnimatorInflater.

将代码中的 XML 资源膨胀为 AnimatorSet 对象
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(PropertyAnimationActivity.this,
            R.animator.animation_load_from_xml_example);
            set.setTarget(animatorSetView);
            set.start();

我收到错误

PropertyValuesHolder: Method setX() with type int not found on target class class android.view.View

知道如何修复错误。

应该是android:propertyName="translationX" 属性,因为你同时使用了valueFrom和valueTo,我猜这意味着将视图从x1移动到x2。如果你想使用 属性 x 那么你应该只 valueTo 属性.

您应该将 valueType 更改为 android:valueType="floatType",因为 setX() 采用浮点值 (ref)。