Набор карт Яндекса: функция прослушивателя не вызывается - PullRequest
0 голосов
/ 13 февраля 2019

Я использую библиотеку Yandex Map Kit для Android и хочу получить информацию о позиции касания пользователя и краткую информацию.Я установил tapListener для сопоставления, но он не вызывается (журнал не отправляется в консоль).Я правильно инициализировал карты, поэтому не вижу проблем с ними (они видны и прокручиваются).

Я пытался использовать анонимный класс вместо лямбды, я пытался установить прослушиватель касаний на другихВиджеты 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

«Объекты прослушивателя, которые сообщают о результате повторных операций или состоянии объекта, должны явно храниться в памяти».

Но я этого не понял.Я пытался поместить слушателя в объект-компаньон, но это не помогло.

...