【问题标题】:Storing GoogleMap in ViewModel在 ViewModel 中存储 GoogleMap
【发布时间】:2021-10-11 11:25:07
【问题描述】:

我开始实现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>()

【问题讨论】:

标签: android google-maps kotlin mvvm android-jetpack-compose


【解决方案1】:

我在它的一个子类中找到了Context,因此将GoogleMap 存储在ViewModel 中似乎不是一个好主意

package com.google.android.libraries.maps.ka;

public class zzba implements zzax, zze, zzbm {
    private final Context zzv;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2015-04-12
    • 2015-03-04
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多