根据官方文档:https ://developer.android.com/topic/libraries/architecture/paging/data#notify-data-invalid
你必须打电话dataSourceLiveData.value?.invalidate()
我从我的角度这样称呼它:
OnRefresh:视图实现SwipeRefreshLayout.OnRefreshListener
override fun onRefresh() {
brewerViewModel.retry()
}
在我的视图模型中定义方法刷新:
fun refresh() {
brewerDataSourceFactory.refresh()
}
就我而言,我正在使用改造从服务器获取数据
ItemResponse 是我从服务器获取的对象(改造)
class DataSourceFactory : DataSource.Factory<Int, ItemResponse>() {
lateinit var dataSource: DataSource
var dataSourceLiveData: MutableLiveData<DataSource> =
MutableLiveData<DataSource>()
override fun create(): DataSource<Int, ItemResponse> {
dataSource = DataSource()
dataSourceLiveData.postValue(dataSource)
return dataSource
}
fun refresh() {
dataSourceLiveData.value?.invalidate()
}
}
在我的 DataSource 中定义如下:
class DataSource : PageKeyedDataSource<Int, ItemResponse>
我希望它有帮助!