Componente Place Search
O componente Place Search do Places UI Kit renderiza os resultados de uma pesquisa de lugar em uma lista.

É possível personalizar a lista de pesquisa de lugares. Veja o que é possível especificar:
- O conteúdo a ser mostrado
- Tamanho da mídia na orientação vertical
- Truncamento de texto
- A orientação
- Substituições de tema que correspondem à sua marca e à linguagem de design do app
- A posição da atribuição
- Se um lugar pode ser selecionado
Também é possível personalizar a solicitação para realizar um Search by text request
ou um Search Nearby request
.
Faturamento
Você recebe uma cobrança sempre que o valor de vinculação de configureFromSearchByTextRequest()
ou configureFromSearchNearbyRequest()
é alterado.
Adicionar a Pesquisa de lugares ao seu app
Use o widget de pesquisa de lugar adicionando o PlaceSearchFragment
Fragment ao seu layout.
Quando você quiser que seu app carregue um resultado de pesquisa de texto ou por perto, chame configureFromSearchByTextRequest()
ou configureFromSearchNearbyRequest()
com a solicitação.
Kotlin
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
Java
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
Você também pode adicionar um PlaceSearchFragmentListener
opcional ao componente para receber callbacks quando ele for carregado, um lugar for selecionado (se estiver definido como selecionável) ou quando houver um erro ao carregar o componente.
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) {...} } )
Personalizar o componente Place Search
Personalize o conteúdo
Você precisa especificar qual conteúdo seu componente vai mostrar.Este exemplo configura o componente para mostrar o endereço e a classificação do lugar.
Kotlin
val fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS, Content.RATING))
Java
PlaceSearchFragment fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS,Content.RATING));
Você também pode personalizar os seguintes aspectos do conteúdo que aparece no componente Pesquisa de lugar:
- PlaceSearchFragment.Content: o conteúdo mostrado no componente.
- mediaSize: o tamanho da foto na orientação vertical do fragmento. O padrão é
SMALL
. - preferTruncation: indica se o texto de cada visualização de detalhes do lugar deve ser truncado.
- attributionPosition: se a atribuição do Google Maps vai aparecer na parte de cima ou de baixo do componente.
- selectable: indica se cada lugar na lista pode ser selecionado.
Adicione sua configuração de personalização a 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)
Personalizar orientação
A orientação padrão é vertical. Para orientação horizontal, especifique Orientation.HORIZONTAL
em PlaceSearchFragment.newInstance()
.
Kotlin
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
Java
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
Personalizar o tema
Ao instanciar um fragmento, você pode especificar um tema que substitui qualquer um dos atributos de estilo padrão. O padrão é PlacesMaterialTheme
. Consulte a documentação do componente Place Details para mais informações sobre temas.
Todos os atributos do tema que não forem substituídos usarão os estilos padrão. Se quiser oferecer suporte a um tema escuro, adicione uma entrada para a cor em 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>
Exemplo
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)