Изменить положение адаптера информационного окна в Google Maps - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь реализовать пользовательский GoogleMap.InfoWindowAdapter, который отображается при нажатии на маркер. Информационное окно выглядит нормально, но его положение по умолчанию выше маркера. Есть ли способ изменить положение информационного окна и сделать его отображаемым под маркером?

Это фрагмент моего класса Fragment, в который загружены маркеры: -

MapFragment.kt

private fun displayMarkersOnMap(markerData: MarkerData) {

        val markerOptions = MarkerOptions().position(hazard.getLatLng())
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))

        val marker = googleMap.addMarker(markerOptions)
        marker.tag = markerData
        googleMap.setInfoWindowAdapter(MarkerInfoView(activity!!))
}

Это класс пользовательского информационного окна

MarkerInfoView.kt

class MarkerInfoView(val context: Context) : GoogleMap.InfoWindowAdapter {

    @SuppressLint("InflateParams")
    override fun getInfoContents(marker: Marker?): View? {

        val view =
            (context as Activity).layoutInflater.inflate(R.layout.layout_info_window, null)

        val markerData: MarkerData = marker?.tag as MarkerData
        view.tvTitle.text = markerData.title
        view.tvLocation.text = markerData.location
        view.tvDescription.text = markerData.description


        return view

    }

    override fun getInfoWindow(marker: Marker?): View? {

        return null
    }
}

Я пытался использовать markerOptions.setInfoWindowAnchor() но это только меняет положение якоря на маркере для окна.

Я также пытался реализовать пользовательский вид и добавить его в качестве дочернего вида в MapView, но вид не является интерактивным с картой и является статичным для той же позиции, даже если карта перемещена.

...