私はListViewを持っています。そのListviewの各ビュー項目には、いくつかのスレッドによって更新される進行状況バーがあります。リストビューはビューを再利用するため(ユニークなビューはありません)、スレッドは新しいアイテムが追加されたときやリストビューがスクロールされたときに予期しないビューを更新します。ListViewのユニークなアイテムビュー
各スレッドがリストビュー内の特定のビューのみを更新するいくつかのユニークなビューを作成するにはどうすればよいですか?
私はListViewを持っています。そのListviewの各ビュー項目には、いくつかのスレッドによって更新される進行状況バーがあります。リストビューはビューを再利用するため(ユニークなビューはありません)、スレッドは新しいアイテムが追加されたときやリストビューがスクロールされたときに予期しないビューを更新します。ListViewのユニークなアイテムビュー
各スレッドがリストビュー内の特定のビューのみを更新するいくつかのユニークなビューを作成するにはどうすればよいですか?
リストビューは、再利用を実現するためにViewHolderパターンを使用する実装者に依存しているため、recyclerviewはデフォルトでビューを再利用しません。単にビューホルダーパターンを使用せず、各リスト項目は独自のビューを受け取ります。並行アイテムが多すぎるリストでこれを行わないように注意してください。ビューアホルダーは、理由のためにデファクトスタンダードになりました。
私はちょうどそれを見ていたclass。ヘッダーリストに更新されるビューを配置します。完了したら、アダプタに戻します。
これは問題です。私は、ユーザーが25個のアイテムを入れないことを保証することはできません。メモリリークを避けるため。リサイクルされたビューを一意に扱う方法を見つけることを好む。 – user3502626
最初に、バックグラウンドスレッドによって現在更新されているビューのリストを維持し、更新が完了するまでリサイクルされないようにすることが考えられます。 –
私はその技術を試しましたが、失敗しました。私は私のアダプタからgetView()でいくつかのものを行うことができます知っている。しかし、リストビューがスクロールされているときに、いくつかの項目が追加または削除され、getView()呼び出しが発生し、nullを返すことができません。私は実際の位置でアイテムを比較し、実際のバックグラウンドタスクでビューを返しますが、そのビューは重複したり、他のビューに置き換えられました。 Androidがスレッドビューを再利用するようです – user3502626