Platform seçin: Android iOS JavaScript

Yer Arama bileşeni

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

Places UI Kit Yer Arama bileşeni

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)