kotlin отсутствующие методы для GoogleMap - PullRequest
0 голосов
/ 28 января 2020

Я конвертирую часть приложения в kotlin, и у меня возникла проблема, вызванная intellisense Android Studio (3.5.3), который не отображает все методы googleMaps

. Это пример:

override fun onMapReady(googleMap: GoogleMap) {
    map = googleMap
    map.setBuildingsEnabled(true)
    map.setTrafficEnabled(true)

    map.setOnMapLoadedCallback(OnMapLoadedCallback {
        if (currentMission != null) {
            drawMission()
        } else {
            drawNoMission()
        }
    })
}

например, я не вижу map.setBuildingsEnabled в intellisense, см. изображение

enter image description here

, но если я принудительно вызывая этот скрытый метод, приложение все еще строит, так что это вызвано kotlin или intellisense. Возможно, это связано с серым предложением, которое я получил относительно доступа к свойству (но это не свойство, потому что на картах Google нет getBuildingsEnabled

enter image description here

Кто-нибудь знает, как решить эту надоедливую проблему? Я не хочу kotlin, чтобы скрыть методы, которые могут быть полезны мне спасибо.

1 Ответ

1 голос
/ 28 января 2020

Методы, которые следуют соглашениям Java для методов получения и установки (методы без аргументов с именами, начинающимися с 'get', и методы с одним аргументом с именами, начинающимися с 'set'), представлены как свойства в Kotlin.

Другими словами, если у вас есть метод Java setTrafficEnabled(true) Kotlin, он предоставит вам синтаксис доступа к свойству isTrafficEnabled = true. Это одно из преимуществ Kotlin.

Если вы игнорируете синтаксис доступа к свойству Kotlin и используете методы получения и установки, все будет работать одинаково.

...