【发布时间】:2017-11-30 11:53:45
【问题描述】:
我在 UI 中有一个值,它的值取决于两个 LiveData 对象。想象一下您需要subtotal = sum of all items price 和total = subtotal + shipment price 的商店。使用Transformations,我们可以对小计LiveData 对象执行以下操作(因为它只依赖于itemsLiveData):
val itemsLiveData: LiveData<List<Items>> = ...
val subtotalLiveData = Transformations.map(itemsLiveData) {
items ->
getSubtotalPrice(items)
}
就总数而言,能够做这样的事情会很棒:
val shipPriceLiveData: LiveData<Int> = ...
val totalLiveData = Transformations.map(itemsLiveData, shipPriceLiveData) {
items, price ->
getSubtotalPrice(items) + price
}
但是,不幸的是,这是不可能的,因为我们不能在 map 函数中放置多个参数。有谁知道实现这一目标的好方法?
【问题讨论】:
标签: android android-livedata android-viewmodel