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