将 LiveData 用于带有过滤器的 RecyclerView 时,代码通常如下所示:
视图模型.kt
private val selectedCategory = MutableLiveData<Category>()
val channels: LiveData<List<Channel>>
...
init{
channels = Transformations.switchMap(selectedCategory){ category ->
category?.let { repository.getChannelsByCategory(category) }
}
}
fun filterByCategory(category: Category?){
category?.let {
selectedCategory.postValue(category)
}
}
但是现在,我开始使用 ObjectBox,但我一直坚持使用 ObjectBoxLiveData。转换不适用于此处:
ViewModelObjectBox.kt
private val selectedCategory = MutableLiveData<Category>()
val channels: ObjectBoxLiveData<List<Channel>>
...
init{
channels = Transformations.switchMap(selectedCategory){ category ->
category?.let { repository.getChannelsByCategory(category) } // This is not working.
}
}
如何在这里进行?