Получить доступ к прослушивателю результатов SupportPlaceAutocompleteFragment

Google SupportPlaceAutocompleteFragment имеет прослушиватель, когда адрес во фрагменте выбирается с помощью: autocompleteFragment.setOnPlaceSelectedListener

Но это работает только тогда, когда наложение результатов закрыто, и вы имеете дело с этими результатами. Моя цель - перехватить клик по результату на ранней стадии.

Я хочу остаться на странице с фрагментом автозаполнения и вместо закрытия продолжать вводить адрес. Например, фрагмент автозаполнения предлагает мне улицу, и я хочу его автозаполнить и дать пользователю возможность указать дом.

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

1 ответ

Довольно грязное, но рабочее решение.

Если тип места - маршрут - вызовите фрагмент автозаполнения места снова

autocompleteFragment.setOnPlaceSelectedListener(object : PlaceSelectionListener {
        override fun onPlaceSelected(place: Place) {
            if (place.placeTypes.first() == Place.TYPE_ROUTE) {
                autocompleteFragment.view?.findViewById<EditText>(R.id.place_autocomplete_search_input)?.performClick()
            }
        }

        override fun onError(status: Status) {
            error("An error occurred: $status")
        }
    })
Другие вопросы по тегам