如何在到达ViewHolder之前从PagingData <T>对象获取数据?

问题描述

我想在到达PagingData<T>之前,在某个类似ViewModel的中间类中获取Adapter对象的数据,并收集其属性作为列表。 我可以通过flatmap访问代码,但是我不想应用任何更改。另外,这种访问是无用的,因为整个块在ViewModel中完成对可观察者的订阅后才运行,因此ViewModel运行无法访问。

    private fun getAssignedDbList(): Flowable<PagingData<T>> {
        var list  = mutableListOf<Int>()
        return repository.getList()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .flatMap { pagingData ->
                Flowable.just(pagingData.map
                { foo -> 
                    list.add(foo.id)
                    foo })
            }
    }

另一个例子,我们假设有这种情况: 在将分页数据传递到视图持有者之前,我将调用另一个API。寻呼数据需要用新的API调用响应填充。如何等待第二个API调用更新分页数据的数据?

 private fun getListFromAPI(): Flowable<PagingData<T>> {
        var list  = mutableListOf<Int>()
        return repository.getList()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .flatMap { pagingData ->
              //call another API calls and waiting for a response to change some of the fields of 
              //paging data
            }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)