ビューをスムーズに下または右にスクロールするために、単一の Animator インスタンスを使用しています。まず、カスタム ビューの実装内で共通のパラメーターを使用してセットアップします。
private ObjectAnimator animator = new ObjectAnimator();
{
animator.setTarget(this);
animator.setDuration(moveDuration);
}
次に、2つの方法を使用して上下に移動しています
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();
}
最初に呼び出されたメソッドのみが正しく機能することがわかりました。最初に実行されたメソッドがアニメーターオブジェクト内にいくつかの痕跡を残したかのように、別のものは間違って動作します。
これらのトレースを削除し、アニメーターを右から下へ、またはその逆にスクロールするように再プログラムするにはどうすればよいですか?