如何在不使用Transformations.switchMap()的情况下在ViewModel中将值设置为val LiveData?

时间:2019-08-15 03:20:55

标签: android android-livedata

我有一个问题。 在BrowseSample中,我们始终Transformations.switchMap()观察一个输入LiveData并将repoRepository.search(search)的值设置为结果。如下:

val results: LiveData<Resource<List<Repo>>> = Transformations
    .switchMap(_query) { search ->
        if (search.isNullOrBlank()) {
            AbsentLiveData.create()
        } else {
            repoRepository.search(search)
        }
    }

但是对于我而言,我每次都只单击按钮以通过repoRepository.search(search)获得新结果,这意味着我没有要观察的参数_query。我能怎么做? 我已经将results定义为val,所以无法每次在ViewModel中创建results = repoRepository.search(search)。 如果将repoRepository返回类型从LiveData更改为Result,则可以在ViewModel中手动使用results.setValue(result)。但是从存储库返回非LiveData重新使用的权利吗?  我对此感到非常困惑……在许多情况下,我们没有可观察的输入参数,因此我们无法使用Transformations.switchMap()

0 个答案:

没有答案