kotlin 的推荐方法是StateFlow。它就像一个 liveData 但更符合 kotlin 的习惯。
这是将 String 流与 Int 流组合成 Boolean 流的示例
class ExampleViewModel() : ViewModel() {
private val _a = MutableStateFlow<Int>(2)
val a = _a.asLiveData()
private val _b = MutableStateFlow<String>("example")
val b = _b.asLiveData()
// this will emit a value at each update of either _a or _b
val c = _a.combine(_b) { a, b -> a > b.length }.asLiveData()
// this will emit a value at each update of _a
val d = _a.zip(_b) { a, b -> a > b.length }.asLiveData()
// this will emit a value at each update of _b
val e = _b.zip(_a) { b, a -> a > b.length }.asLiveData()
// this is the same as d
val f = _a.map { it > _b.value.length }.asLiveData()
}
在这里了解更多