0

notifyDataSetChanged()アイテムが削除されてアダプターが呼び出されたときに、後のアイテムを上にプルするのではなく、以前のアイテム (ユーザーが既にスクロールした非表示のアイテムを含む) を下にプルするように、デフォルトの ListView 動作を変更する必要があります。ListView最終的な目標は、メモリ節約の理由から古いビューを破棄して続行する無限スクロール可能です。私が知りたいのは:

  1. この動作を変更する方法、または...
  2. の設計が十分ListViewにスマートで、Picasso や Universal Image Loader などのライブラリを使用するか、すべての非表示ビューをダミーの単一色の「Drawable」に置き換えると、数百または数千のスクロール アイテムを処理できます。

ありがとうございます!エンドレススクロールについては、 hereまたはhereと同様のことをしたいと考えています。

4

1 に答える 1

1

と戦わないことをお勧めしListViewます。は、ListViewメモリを節約するために高度に最適化されています。リスト内の各アイテムのビューを膨張させるのではなく、画面を埋めるために必要な数のビューのみを膨張させ、リストがスクロールするにつれてそれらのビューをリサイクルします。2010 年の非常に優れた Google I/O レクチャーListViewで、どのように動作するかを説明しています。これを見て、アプローチを再考する必要があります。

また、ユニバーサル イメージ ローダーを で使用することもできますListView。多くの人が持っており、このサイトには多くの例があります. 最も一般的なパターンは「怠惰なリスト」です。これについては、Google で検索 (またはここで検索) すると詳細を読むことができます。基本的に、必要なものだけをロードし、不要なものは破棄します。これにより、ビットマップやその他のコンテンツをホストするためにすべてのメモリを使用することなく、長いリストを提供できます。

于 2013-08-01T13:05:02.310 に答える