0

Viewアダプターから作成したすべての でアニメーションを表示しようとしています。下にスクロールするとアニメーションが正しく表示されますが、上にスクロールすると、これらViewが再作成されてアニメーションが再び表示されます。次に、下にスクロールすると、再び発生します。

私の想定ではView、アダプタからを作成するメカニズムは、Viewをメモリにロードすることです。現在画面に表示されているのグループだけですView(ただし、上下のビューはメモリに読み込まれません)。これらのビューにスクロールすると、これらは再び読み込まれますよね?

この問題を解決する方法はありますか?

PS: 英語で申し訳ありませんが、私の問題を理解していただければ幸いです。

4

1 に答える 1

0

私の仮定では、アダプタからビューを作成するメカニズムは、ビューをメモリにロードすることです。現在画面に表示されているビューのグループのみ(ただし、上下のビューはメモリに読み込まれません)

これはある程度正しいです。aListViewは、(少なくとも部分的に)表示されていないデータを視覚化しようとはしません。また、ビューを「リサイクル」します。つまり、現在ユーザーにデータを表示するために使用されておらず、次のデータ項目と同じ「タイプ」のビューは再利用される可能性があります。

したがって、特定のビューの存在についてデータを永続化することに依存したり、仮定したりしないでください。代わりに、ビューとは別のものを使用してください。たとえば、視覚化しているデータセット。

多くの場合、POJOのリストをBaseAdapterまたはに提供しArrayAdapterます。POJOにブール値を追加して、アニメーション化するかどうかを指定し、その特定のアイテムのアニメーションが終了するたびにそれを変更することができます。または、これらの値を別のコレクションで追跡することもできます(CursorPOJOではなくデータソースとして扱う場合は、おそらくより簡単なアプローチです)。

于 2012-12-27T19:10:33.367 に答える