我正在使用单个 Animator 实例来平滑地向下或向右滚动视图。首先,我在自定义 View 实现中使用通用参数对其进行设置:
private ObjectAnimator animator = new ObjectAnimator();
{
animator.setTarget(this);
animator.setDuration(moveDuration);
}
然后我使用两种方法向下和向右移动
public void moveRight() {
if( animator.isRunning() ) animator.end();
animator.setPropertyName("scrollX");
animator.setIntValues(getScrollX(), getScrollX() + cellWidth);
animator.start();
}
public void moveDown() {
if( animator.isRunning() ) animator.end();
animator.setPropertyName("scrollY");
animator.setIntValues(getScrollY(), getScrollY() + cellHeight);
animator.start();
}
我发现,只有第一个调用的方法才能正常工作。另一个工作错误,好像第一次运行的方法在 animator 对象中留下了一些痕迹。
如何删除这些痕迹并重新编程动画师从右到下滚动,反之亦然?