18

との間に違いはListView.invalidateViews()ありAdapter.notifyDataSetChanged()ますか?

4

1 に答える 1

39

はい、あります。

ListView.invalidateViews()ListViewにすべての子アイテムビューを無効にする(再描画する)ように指示するために使用されます。 アイテムと同じ数のビューである必要はないことに注意してください。これは、ListViewがアイテムビューをリサイクルし、スクロール中にスマートな方法で画面上を移動するためです。

Adapter.notifyDataSetChanged()一方、アダプターのオブザーバーに、適応されている内容が変更されたことを通知することです。データセットが変更されたことを通知すると、リストビューがアダプターメソッドを再度呼び出して、スクロールバーの調整、アイテムビューの再生成などを行います。

notifyDataSetChangedほとんどの場合、の代わりに使用したいと思うでしょうinvalidateViewsが、それは確かにあなたが達成しようとしていることに依存します。

于 2012-05-20T20:01:48.670 に答える