Yer Arama bileşeni
Places UI Kit'in Yer Arama bileşeni, yer arama sonuçlarını bir listede oluşturur.

Yer Arama listesini özelleştirebilirsiniz. Şunları belirtebilirsiniz:
- Gösterilecek içerik
- Dikey yönde medya boyutu
- Metin kesme
- Yön
- Markanızın ve uygulamanızın tasarım diline uygun tema geçersiz kılma işlemleri
- İlişkilendirmenin konumu
- Bir yerin seçilebilir olup olmadığı
İsteği Search by text request
veya Search Nearby request
işlemi yapacak şekilde de özelleştirebilirsiniz.
Faturalandırma
configureFromSearchByTextRequest()
veya configureFromSearchNearbyRequest()
bağlama değeri her değiştirildiğinde faturalandırılırsınız.
Uygulamanıza Yer Arama ekleme
Düzeninize PlaceSearchFragment
Parça'yı ekleyerek Yer Arama widget'ını kullanın.
Uygulamanızın bir metin arama veya yakındaki arama sonucu yüklemesini istediğinizde istekle birlikte configureFromSearchByTextRequest()
veya configureFromSearchNearbyRequest()
işlevini çağırın.
Kotlin
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
Java
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
Bileşen yüklendiğinde, bir yer seçildiğinde (seçilebilir olarak ayarlanmışsa) veya bileşeni yüklerken bir hata oluştuğunda geri çağırma almak için bileşene isteğe bağlı bir PlaceSearchFragmentListener
de ekleyebilirsiniz.
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) {...} } )
Yer Arama bileşenini özelleştirme
İçeriği özelleştirme
Bileşeninizin hangi içeriği göstereceğini belirtmeniz gerekir.Bu örnekte, bileşen, yerin adresini ve puanını gösterecek şekilde yapılandırılır.
Kotlin
val fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS, Content.RATING))
Java
PlaceSearchFragment fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS,Content.RATING));
Ayrıca, yer arama bileşeninizde görünen içeriğin aşağıdaki yönlerini isteğe bağlı olarak özelleştirebilirsiniz:
- PlaceSearchFragment.Content: Bileşende gösterilen içerik.
- mediaSize: Parçanın dikey yönündeki fotoğraf boyutu. Varsayılan değer
SMALL
'dir. - preferTruncation: Her yer ayrıntıları görünümündeki metnin kesilip kesilmeyeceği.
- attributionPosition: Google Haritalar ilişkilendirmesinin bileşenin üstünde mi yoksa altında mı gösterileceği.
- selectable: Listedeki her yerin seçilebilir olup olmadığı.
Özelleştirme yapılandırmanızı PlaceSearchFragment
'ye ekleyin.
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)
Yönü özelleştirme
Varsayılan yön dikeydir. Yatay yön için PlaceSearchFragment.newInstance()
içinde Orientation.HORIZONTAL
değerini belirtin.
Kotlin
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
Java
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
Temayı özelleştirme
Bir parçayı örneklendirirken varsayılan stil özelliklerinden herhangi birini geçersiz kılan bir tema belirtebilirsiniz. Varsayılan değer: PlacesMaterialTheme
. Tema oluşturma hakkında daha fazla bilgi için Yer Ayrıntıları Bileşeni dokümanlarını inceleyin.
Geçersiz kılınmayan tüm tema özellikleri varsayılan stilleri kullanır. Koyu temayı desteklemek istiyorsanız values-night/colors.xml
içinde renk için bir giriş ekleyebilirsiniz.
<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>
Örnek
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)