Ich habe einen Wert in der Benutzeroberfläche, die ihren Wert von zwei LiveData Objekte abhängt. Stellen Sie sich einen Laden vor, in dem Sie eine subtotal = sum of all items price
und eine total = subtotal + shipment price
benötigen. Mit Transformations wir folgende für die Zwischensumme Livedata-Objekt tun können (wie es hängt nur von itemsLiveData
):LiveData Transformationen.map() mit mehreren Argumenten
val itemsLiveData: LiveData<List<Items>> = ...
val subtotalLiveData = Transformations.map(itemsLiveData) {
items ->
getSubtotalPrice(items)
}
Im Fall der Gesamt wäre es toll, die Lage sein, so etwas zu tun:
val shipPriceLiveData: LiveData<Int> = ...
val totalLiveData = Transformations.map(itemsLiveData, shipPriceLiveData) {
items, price ->
getSubtotalPrice(items) + price
}
Aber leider ist das nicht möglich, weil wir nicht mehr als ein Argument in die Kartenfunktion einfügen können. Weiß jemand einen guten Weg, dies zu erreichen?