You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中Google Maps Compose两种Marker参数用法差异咨询

问题核心原因

两个应用使用的Google Maps Compose库版本不一致,这是导致Marker组件参数要求不同的根本原因。

两个版本的Marker参数差异
  • 旧版本(如1.x系列):Marker直接提供position参数,用来设置标记的经纬度位置,不需要用MarkerState包裹。
    代码示例:
    Marker(position = latLng)
    
  • 新版本(如2.x及以上系列):Marker移除了直接的position参数,必须通过state: MarkerState传递位置信息。MarkerState是一个可观察的状态类,用来管理标记的位置、动画等状态。
    代码示例:
    Marker(
        state = MarkerState(position = latLng),
        title = "Singapore",
        snippet = "Marker in Singapore"
    )
    
解决办法
  1. 统一两个应用的Google Maps Compose库版本:
    打开项目Module级别的build.gradle文件,找到com.google.maps.android:maps-compose的依赖条目,把版本号改成同一个值。比如统一用最新稳定版:
    implementation "com.google.maps.android:maps-compose:2.11.4"
    
  2. 根据统一后的版本调整代码:
    • 如果升级到新版本,所有Marker的position参数都要替换成state = MarkerState(position = ...),同时记得导入com.google.maps.android.compose.MarkerState。
    • 如果降级到旧版本,保持用position参数即可,不需要导入MarkerState。
补充说明

新版本改用MarkerState是为了适配Jetpack Compose的状态管理模式,让标记的位置、动画等状态能被观察和修改,方便实现拖动标记更新位置这类交互场景。

内容的提问来源于stack exchange,提问作者Deusnominus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:15:11