我使用Android的Yandex Map Kit库,希望获取用户的触摸位置和简要信息。我已将tapListener设置为映射,但未调用它(没有日志发送到控制台)。我已经正确初始化了地图,所以我看不到它们的问题(它们可见且可滚动)。
我试图使用匿名类代替lambda,我试图在其他Map Kit窗口小部件(例如MapView.Map.MapObjects)上设置点击监听器,但是没有运气。
这是我设置监听器的方式:
mapsHelper.let {
it.clickListener = { tapEvent ->
Log.d("mapTapEvent", tapEvent.geoObject.toString())
true
}
}
在MapsHelper中:
var clickListener: ((tapEvent: GeoObjectTapEvent) -> Boolean)? = null
fun initMaps(mapView: MapView) {
mapView.map?.setMapLoadedListener {
clickListener?.let { listener -> mapView.map.addTapListener(listener) }
}
}
我希望用户点击地图时,它将输出点击点和有关放置到控制台中的简要数据。 我仅发现此问题的一处:https://github.com/yandex/mapkit-android-demo/issues/19
“报告重复操作结果或 对象的状态必须显式存储在内存中。”
但是我不明白。我试图将侦听器放入同伴对象,但这没有帮助。