私の Android アプリでは、RecyclerView
使用中の Room と Paging ライブラリにデータを表示しています。
AsyncPagedListDiffer
私の実装は、ドキュメントの例と非常によく似ています。
流れは次のとおりです。
- データベースのデータが変更されました
対応
Observer
する は変更を に渡しますAdapter
:myLiveData.observe(viewLifecycleOwner, Observer { myAdapter.submitList(it) })
は
AsyncPagedListDiffer
差分を計算し、それに応じてリストを更新します
私の問題は、ステップ 3 のパフォーマンス ヒットです。
リストの先頭に1つのアイテムを挿入したとしても、すべてのアイテムをチェックする必要があります (これは、特に大規模なデータセットでは非常に非効率的です) が、単純なnotifyItemInserted(0)
呼び出しで十分です。
この動作を回避する方法はありますか?
たとえば、すべての項目をチェックする必要がないことを相違点に伝えることができますか? またはこれに対する他の解決策はありますか?
アドバイスをいただければ幸いです。