【发布时间】:2021-03-25 16:29:33
【问题描述】:
homeViewModel.pagingDataFlow.subscribe(expensesPagingData -> {
expenseAdapter.submitData(getLifecycle(), expensesPagingData);
}, throwable -> Log.e(TAG, "onCreate: " + throwable.getMessage()));
// ViewModel
private void init() {
pagingDataFlow = homeRepository.init();
CoroutineScope coroutineScope = ViewModelKt.getViewModelScope(this);
PagingRx.cachedIn(pagingDataFlow, coroutineScope);
}
// Repository
public Flowable<PagingData<ExpensesModel>> init() {
// Define Paging Source
expensePagingSource = new ExpensePagingSource(feDataService);
// Create new Pager
Pager<Integer, ExpensesModel> pager = new Pager<Integer, ExpensesModel>(
new PagingConfig(10,
10,
false,
10,
100),
() -> expensePagingSource); // set paging source
// inti Flowable
pagingDataFlow = PagingRx.getFlowable(pager);
return pagingDataFlow;
}
I have tried to invalidate still not working.
public void invalidatePageSource() {
if (expensePagingSource != null) {
expensePagingSource.invalidate();
}
}
当使用expenseAdapter.refresh() 刷新适配器时 当 Pager 期望创建一个新实例时,一个 PagingSource 实例被重新使用。确保传递给 Pager 的 pagingSourceFactory 始终返回一个新的 PagingSource 实例。 这是我用来获取数据的可流动对象。
任何帮助将不胜感激。
【问题讨论】:
-
找到解决方案了吗?
-
不行,我切换到正常的分页方式,你试过下面的答案吗?
标签: android android-recyclerview android-paging-library android-paging-3