14

今日、PagerAdapterが何度も呼び出されることに気づきました。ページをゆっくりスクロールするときに393を数えました。私はこの質問を見ましたが、それは本当に私に良い答えを提供しませんでした。

  1. これは正常な動作ですか
  2. もしそうなら、なぜgetCountメソッドが頻繁に呼び出されるのですか?

明確にするために、私は提供された質問の答えよりももっと広範な答えを探しています。私はそれをできるだけ速く保つ必要があること、そしてそれがどのように呼ばれるかを制御できないことも理解していますが、それはここでの問題ではありません。

4

1 に答える 1

5

結論として、onTouchEventで多く使用されています。OnTouchEventは、画面を操作するたびに呼び出されます。つまり、タッチ移動およびリリースイベントを意味します。1ピクセルだけ移動すると、このメソッドが呼び出される可能性があります。

説明することはそれほど多くありません、それはそれが実装される方法にすぎません。通常、adapter.getCountは、List.getSizeやCursor.getCountなどで実装されます。また、オーバーヘッドはほとんどありません。これが問題になる場合は、ListAdapter.getCountメソッドを最適化し、カウントなどをキャッシュします。必要な場合にのみ複雑な処理を行い、無効になるまで結果をキャッシュします。

于 2013-07-09T06:57:37.993 に答える