在ViewModel中存储GoogleMap



我开始实现Jetpack Compose和好奇:这是一个很好的决定,将GoogleMap存储在ViewModel?检查它的内部,我没有发现它包含任何Context,因此它应该是上下文无关的,可以存储在VM中。示例代码为:

class MapViewModel() : ViewModel() {
val gMapAsync = MutableLiveData<GoogleMap>()
}
@Composable
fun MapViewContainer(
viewModel: MapViewModel
) {
val map = rememberMapViewWithLifecycle()
AndroidView({ map }) { mapView: MapView ->
mapView.getMapAsync {
viewModel.gMapAsync.value = it
}
}
}

我看到的另一种方法是使用内部变量或其他东西(如回调):

internal val gMapAsync = MutableLiveData<GoogleMap>()

我发现Context在它的一个子类中,因此将GoogleMap存储在ViewModel

中似乎不是一个好主意
package com.google.android.libraries.maps.ka;
public class zzba implements zzax, zze, zzbm {
private final Context zzv;

最新更新