Получить доступ к прослушивателю результатов 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")
}
})