1

特定のページ数のを持っている場合ViewPager、フレームワークを使用して各ページのデータをロードするための最良の方法は何でしょうLoaderか?各ページには、独自のアダプタインスタンスを持つListViewが含まれています。

  1. ページごとに個別のローダーを使用します。また
  2. ロードされていないページをチェックしてロードするシングルローダーを使用する

重要なのは、ユーザーが大量のページをすばやくスワイプしたい場合があるため、パフォーマンス上の理由で不要なページの読み込みを簡単に「キャンセル」できるはずです。

一方で、ローダーが多いとオーバーヘッドが発生する可能性があります。

編集:Loaderは実際に、ロードしているコンテンツを表すために動的IDを持っている必要があります。おそらくローダーIDにマスクを使用して、ローダーが完了したらを呼び出しますdestroyLoader()

4

1 に答える 1

1

Loaderそれぞれに個別に使用しますListFragmentLoader親からフラグメントを管理しようとするとActivity(特に、それらのフラグメントがによって保持されている場合) 、事態はすぐに混乱しますViewPagerFragmentsは再利用できるように設計されているはずであり、Activity正しく機能するために特定のものに依存するべきではありません。ActivityそれぞれFragmentが独自のインスタンスを取得するという事実は、Androidチームが開発者にアタッチされたのデータをロードするLoaderManagerことを望まなかったことのさらなる証拠です。ActivityFragment

おそらく予想されるほどのオーバーヘッドはないと思います... Loadersは、コンポーネントのライフサイクル全体でデータを保持し、基になるコンテンツが変更された場合にのみ再クエリする必要があります。も使用するのは良い考えかもしれませFragmentStatePagerAdapterん。

于 2012-08-19T03:35:07.677 に答える