新しいページング ライブラリを使用すると、データのページネーションで使用するカスタム データ ソースを指定できます。ページング ライブラリのドキュメントと github のサンプル コードは、次のように DataSource.Factory のサブクラスを作成することによって、カスタム データ ソース インスタンスを作成する方法を示しています。
class ConcertTimeDataSourceFactory(private val concertStartTime: Date) :
DataSource.Factory<Date, Concert>() {
val sourceLiveData = MutableLiveData<ConcertTimeDataSource>()
override fun create(): DataSource<Date, Concert> {
val source = ConcertTimeDataSource(concertStartTime)
sourceLiveData.postValue(source)
return source
}
}
実際のアプリでは、通常、recyclerviews を含む複数のビューがあり、したがって複数のカスタム データ ソースがあります。では、データ ソースごとに DataSource.Factory の複数の実装を作成することになりますか、それともより一般的な解決策がありますか?