Komponent Wyszukiwanie miejsc
Komponent Wyszukiwanie miejsc w ramach interfejsu Places UI Kit renderuje wyniki wyszukiwania miejsca w postaci listy.

Możesz dostosować listę wyszukiwania miejsc. Możesz określić:
- treści do wyświetlenia,
- Rozmiar multimediów w orientacji pionowej
- Obcinanie tekstu
- Orientacja
- Zastąpienia motywu, które pasują do Twojej marki i języka projektowania aplikacji.
- Pozycja atrybucji
- Czy miejsce można wybrać
Możesz też dostosować żądanie, aby wykonać Search by text request
lub Search Nearby request
.
Płatności
Opłata jest naliczana za każdym razem, gdy zmieni się wartość powiązania configureFromSearchByTextRequest()
lub configureFromSearchNearbyRequest()
.
Dodawanie wyszukiwania miejsc do aplikacji
Użyj widżetu wyszukiwania miejsc, dodając do układu PlaceSearchFragment
fragment.
Jeśli chcesz, aby aplikacja wczytała wyniki wyszukiwania tekstowego lub wyszukiwania w pobliżu, wywołaj funkcję configureFromSearchByTextRequest()
lub configureFromSearchNearbyRequest()
z odpowiednim żądaniem.
Kotlin
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
Java
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
Możesz też dodać do komponentu opcjonalny element PlaceSearchFragmentListener
, aby otrzymywać wywołania zwrotne, gdy komponent się wczyta, gdy zostanie wybrane miejsce (jeśli komponent ma być wybieralny) lub gdy wystąpi błąd wczytywania komponentu.
Kotlin
fragment.registerListener( object : PlaceSearchFragmentListener { override fun onLoad(places: List<Place>) {...} override fun onRequestError(e: Exception) {...} override fun onPlaceSelected(place: Place) {...} } )
Java
fragment.registerListener( new PlaceSearchFragmentListener() { @Override public void onLoad(List<? extends Place> places) {...} @Override public void onRequestError(Exception e) {...} @Override public void onPlaceSelected(Place place) {...} } )
Dostosowywanie komponentu Wyszukiwanie miejsc
Dostosowywanie treści
Musisz określić, jakie treści będzie wyświetlać komponent.W tym przykładzie komponent jest skonfigurowany tak, aby wyświetlać adres i ocenę miejsca.
Kotlin
val fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS, Content.RATING))
Java
PlaceSearchFragment fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS,Content.RATING));
Możesz też opcjonalnie dostosować te aspekty treści wyświetlanych w komponencie wyszukiwania miejsca:
- PlaceSearchFragment.Content: treść wyświetlana w komponencie.
- mediaSize: rozmiar zdjęcia w orientacji pionowej fragmentu. Wartość domyślna to
SMALL
. - preferTruncation: czy tekst w każdym widoku szczegółów miejsca ma być obcięty.
- attributionPosition: czy atrybucja Map Google ma się wyświetlać u góry czy u dołu komponentu.
- selectable: czy każde miejsce na liście można wybrać.
Dodaj konfigurację dostosowywania do pliku PlaceSearchFragment
.
Kotlin
fragment.preferTruncation = false fragment.attributionPosition = AttributionPosition.BOTTOM fragment.mediaSize = MediaSize.SMALL fragment.selectable = true
Java
fragment.setPreferTruncation(false) fragment.setAttributionPosition(AttributionPosition.BOTTOM) fragment.setMediaSize(MediaSize.SMALL) fragment.setSelectable(true)
Dostosowywanie orientacji
Domyślna orientacja to pionowa. W przypadku orientacji poziomej w polu PlaceSearchFragment.newInstance()
wpisz Orientation.HORIZONTAL
.
Kotlin
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
Java
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
Dostosowywanie motywu
Podczas tworzenia instancji fragmentu możesz określić motyw, który zastąpi dowolne domyślne atrybuty stylu. Wartość domyślna to PlacesMaterialTheme
. Więcej informacji o motywach znajdziesz w dokumentacji komponentu szczegółów miejsca.
Wszystkie atrybuty motywu, które nie zostały zastąpione, używają stylów domyślnych. Jeśli chcesz obsługiwać ciemny motyw, możesz dodać wpis dla koloru w pliku values-night/colors.xml
.
<style name="CustomizedTheme" parent="PlacesMaterialTheme"> <item name="placesColorPrimary">@color/app_primary_color</item> <item name="placesColorOnSurface">@color/app_color_on_surface</item> <item name="placesColorOnSurfaceVariant">@color/app_color_on_surface</item> <item name="placesTextAppearanceBodySmall">@style/app_text_appearence_small</item> <item name="placesCornerRadius">20dp</item> </style>
Przykład
Kotlin
val fragment: PlaceSearchFragment = PlaceSearchFragment.newInstance(PlaceSearchFragment.STANDARD_CONTENT) fragment.preferTruncation = false fragment.attributionPosition = AttributionPosition.BOTTOM fragment.mediaSize = MediaSize.SMALL fragment.selectable = true fragment.registerListener( object : PlaceSearchFragmentListener { override fun onLoad(places: List<Place>) {...} override fun onRequestError(e: Exception) {...} override fun onPlaceSelected(place: Place) {...} } ) supportFragmentManager .beginTransaction() .replace(R.id.fragment_container, fragment) .commitNow() fragment.configureFromSearchByTextRequest(searchByTextRequest)
Java
PlaceSearchFragment fragment = PlaceSearchFragment.newInstance(PlaceSearchFragment.STANDARD_CONTENT); fragment.setPreferTruncation(false) fragment.setAttributionPosition(AttributionPosition.BOTTOM) fragment.setMediaSize(MediaSize.SMALL) fragment.setSelectable(true) fragment.registerListener( new PlaceSearchFragmentListener() { @Override public void onLoad(List<? extends Place> places) {...} @Override public void onRequestError(Exception e) {...} @Override public void onPlaceSelected(Place place) {...} } ) getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, fragment) .commitNow(); fragment.configureFromSearchByTextRequest(searchByTextRequest)