マップライブデータ > LiveDataへ > 質問する

マップライブデータ > LiveDataへ > 質問する

ドメイン オブジェクトを UI オブジェクトにマップし、ライブ ページ リストを使用して表示する必要があります。

LiveData<PagedList<X>>を にマップしLiveData<PagedList<Y>>PositionalDataSource<X>を にマップしようPositionalDataSource<Y>としましたが、パッケージ プライベートとプライベートの制限により、コードを android.arch.paging パッケージに配置してリフレクションを使用するか、ページング ライブラリの修正バージョンを使用しない限り、これらは両方とも不可能であるようです。

このような望ましくない方法に頼らずにこれを行う方法を誰か知っていますか?

(ページング ライブラリ API が抽象基本クラスの代わりにインターフェイスを使用した場合、これは問題にならないことに注意してください。これにより、任意のページ化されたリスト/データ ソースをラップし、適切なマッピングを追加できるようになります。)

ベストアンサー1

DataSource と DataSource.Factory にはmapBy()と がありmapPageBy()、この場合に役立ちます。ただし、これら 2 つは "Y" 結果リストのサイズを制限するので注意してください。

結果のサイズが元のリストのサイズと異なる場合、DataSource は例外をスローします。

おすすめ記事