0

主にリストビューで動作するアプリを作成しています。ユーザーはリストビューにアイテムを追加でき、現在の位置からリストの一番下までスクロールしたい。

最初に、現在の位置から下にスクロールできる scrollBy(int x, int y) を使用しました。しかし、これは瞬間的な行動でした。スムーズなスクロールにしたいです。

それがまさに私がしたことです。SmoothScrollBy(int distance, int duration) を使用しましたが、リストの直前に現在の位置を設定しても、これは常に上からスクロールするようです。

私の質問は、メソッド scrollBy を遅くするタイマーを使用する必要がありますか、またはリスト内の現在の位置から開始する SmoothScrollBy を実行する方法が必要ですか?

現在の位置を意味するときは、setSelection(int position) だけでなく、正確なピクセル位置を保存することに注意してください。

ありがとう

4

1 に答える 1

0

さて、私は問題を解決しました。問題は私のコードの他の場所で発生しました。

常に一番上からスクロールしていたのは、smoothScrollBy() を呼び出した直後に現在のリスト位置を更新していたためです。そのため、スクロール アクションが完了する前に更新されていました。リストの位置を更新するメソッド呼び出しを後でコードに移動したところ、正常に動作するようになりました。

于 2012-12-11T19:09:36.320 に答える