在 ViewModel 之外接受提供 LiveData 而不是 MutableLiveData。你怎么做呢?
例如,我这样做:
private val _objectsState: MutableLiveData<ObjectListUIState> = MutableLiveData()
val objectsState: LiveData<ObjectListUIState> get() = _objectsState
例如,有各种各样的:
private val _mapBoundState: MutableLiveData<BoundBox> = MutableLiveData()
val mapBoundState: LiveData<BoundBox> get() = _mapBoundState
private val _bottomSheetVisibleState: MutableLiveData<Booleand> = MutableLiveData()
val bottomSheetVisibleState: LiveData<Booleand> get() = _bottomSheetVisibleState
private val _mapTileTypeState: MutableLiveData<TileType> = MutableLiveData()
val mapTileTypeState: LiveData<TileType> get() = _mapTileTypeState
等等 可以通过其他方式完成吗?(为了更少的代码)
您可以使用密封类和发布状态。
例子:
并创建一个 LiveData
例如,您开始传输的下载
接收数据时
实际上,在 View 中,您有一个类似这样的方法: