首页 > 解决方案 > 即使 setRepeatCount = 0,对象动画师也会重新启动

问题描述

我正在使用ObjectAnimator动画WaveView的进度。

在这个方法(从我的 Activity 调用onCreate())中,我使用触发动画waveAnimator.start()waterLevel是我的WaveView

void setCurrentLevel(int currentLevelValue) {
    // Animate WaveView
    ObjectAnimator waveAnimator = ObjectAnimator.ofInt(waterLevel, "progress", currentLevelValue);
    waveAnimator.setDuration(500);
    waveAnimator.start();
}

这是我WaveViewactivity_main.xml中的

<com.john.waveview.WaveView
    android:id="@+id/water_level"
    android:layout_width="match_parent"
    android:layout_height="550dp"
    android:background="@android:color/transparent"
    app:above_wave_color="@android:color/holo_blue_dark"
    app:blow_wave_color="@android:color/holo_blue_light"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:wave_height="little"
    app:wave_hz="normal"
    app:wave_length="middle"/>

问题是由于某种原因,动画显示了两次,如您在此gif中所见

添加一个Listener到我的ObjectAnimator我可以看到动画开始,然后onAnimationEnd被调用,然后动画再次开始,最终onAnimationEnd被第二次调用。

我尝试添加waveAnimator.setRepeatCount(0)但没有任何变化。

我究竟做错了什么?

标签: javaandroidobjectanimator

解决方案


推荐阅读