我想将不同的LiveData<List<Element>>
合并为一个,我以为MediatorLiveData<List<Element>>
是一个不错的选择,但是我不确定,因为onChange是用完整的List调用的,所以我不能仅添加新元素,如何实现仅添加新数据。
我的代码:
val localData = repository.getAllElementsFromDatabase()
val internetData = MutableLiveData<List<Element>>()
val allData = MediatorLiveData<List<Element>>()
init {
internetData.postValue(repository.getAllElementsFromInternet())
allData.addSource(localData){
if (allData.value==null) allData.value = it
else for (elem in it!!) allData.value.add(elem)
}
allData.addSource(internetData){
if (allData.value==null) allData.value = it
else for (elem in it!!) allData.value.add(elem)
}
}