پلتفرم را انتخاب کنید: Android iOS JavaScript

جزء جستجوی مکان

مؤلفه جستجوی مکان در کیت UI مکان ها، نتایج جستجوی مکان را در یک لیست ارائه می کند.

مولفه جستجوی مکان کیت UI مکان ها

می توانید لیست جستجوی مکان را سفارشی کنید. می توانید مشخص کنید:

  • محتوایی برای نمایش
  • اندازه رسانه در جهت عمودی
  • کوتاه کردن متن
  • جهت گیری
  • طرح زمینه‌ای که با برند و زبان طراحی برنامه شما مطابقت دارد
  • موقعیت انتساب
  • اینکه آیا مکانی قابل انتخاب است یا خیر

همچنین می‌توانید درخواست را سفارشی کنید تا Search by text request یا Search Nearby request انجام دهد.

صورتحساب

هر بار که مقدار اتصال configureFromSearchByTextRequest() یا configureFromSearchNearbyRequest() تغییر می کند، صورتحساب شما دریافت می شود.

جستجوی مکان را به برنامه خود اضافه کنید

با افزودن قطعه PlaceSearchFragment به طرح‌بندی خود، از ویجت جستجوی مکان استفاده کنید.

هنگامی که می‌خواهید برنامه شما یک جستجوی متنی یا نتیجه جستجوی نزدیک را بارگیری کند، با configureFromSearchByTextRequest() یا configureFromSearchNearbyRequest() را با درخواست تماس بگیرید.

کاتلین

fragment.configureFromSearchByTextRequest(searchByTextRequest)

// or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search

جاوا

fragment.configureFromSearchByTextRequest(searchByTextRequest)

// or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
    

همچنین می‌توانید یک PlaceSearchFragmentListener اختیاری را به مؤلفه اضافه کنید تا هنگام بارگیری مؤلفه، مکان انتخاب شده (در صورتی که قابل انتخاب باشد) یا هنگام بارگیری مؤلفه خطایی وجود داشته باشد، تماس‌های برگشتی دریافت کنید.

کاتلین

fragment.registerListener(
  object : PlaceSearchFragmentListener {
    override fun onLoad(places: List<Place>) {...}
    override fun onRequestError(e: Exception) {...}
    override fun onPlaceSelected(place: Place) {...}
  }
)
  

جاوا

fragment.registerListener(
  new PlaceSearchFragmentListener() {
    @Override public void onLoad(List<? extends Place> places) {...}
    @Override public void onRequestError(Exception e) {...}
    @Override public void onPlaceSelected(Place place) {...}
  }
)
    

مولفه جستجوی مکان را سفارشی کنید

سفارشی کردن محتوا

باید مشخص کنید که جزء شما چه محتوایی را نمایش می دهد.

این مثال کامپوننت را برای نمایش آدرس و رتبه بندی مکان پیکربندی می کند.

کاتلین

val fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS, Content.RATING))
    

جاوا

PlaceSearchFragment fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS,Content.RATING));
    

همچنین می‌توانید به صورت اختیاری جنبه‌های زیر از محتوایی را که در مؤلفه جستجوی مکان ظاهر می‌شود سفارشی کنید:

  • PlaceSearchFragment.Content : محتوای نشان داده شده در مؤلفه.
  • mediaSize : اندازه عکس در جهت عمودی قطعه. پیش فرض SMALL است.
  • preferTruncation : اینکه آیا متن هر نمای جزئیات مکان کوتاه شود.
  • attributionPosition : اینکه آیا انتساب Google Maps در بالا یا پایین جزء نشان داده شود.
  • selectable : آیا هر مکان در لیست قابل انتخاب است یا خیر.

پیکربندی سفارشی سازی خود را به PlaceSearchFragment اضافه کنید.

کاتلین

fragment.preferTruncation = false
fragment.attributionPosition = AttributionPosition.BOTTOM
fragment.mediaSize = MediaSize.SMALL
fragment.selectable = true
    

جاوا

fragment.setPreferTruncation(false)
fragment.setAttributionPosition(AttributionPosition.BOTTOM)
fragment.setMediaSize(MediaSize.SMALL)
fragment.setSelectable(true)
    

جهت گیری را سفارشی کنید

جهت پیش فرض عمودی است. برای جهت افقی، Orientation.HORIZONTAL در PlaceSearchFragment.newInstance() مشخص کنید.

کاتلین

PlaceSearchFragment.newInstance(
    PlaceSearchFragment.ALL_CONTENT,
    Orientation.HORIZONTAL
)
    

جاوا

PlaceSearchFragment.newInstance(
    PlaceSearchFragment.ALL_CONTENT,
    Orientation.HORIZONTAL
)
      

تم را سفارشی کنید

هنگام نمونه سازی یک قطعه، می توانید موضوعی را تعیین کنید که هر یک از ویژگی های سبک پیش فرض را لغو کند. پیش فرض PlacesMaterialTheme است. برای اطلاعات بیشتر در مورد موضوع، به مستندات جزییات مکان مراجعه کنید.

هر ویژگی موضوعی که لغو نشده است از سبک های پیش فرض استفاده می کند. اگر می‌خواهید از یک تم تیره پشتیبانی کنید، می‌توانید یک ورودی برای رنگ در 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>

مثال

کاتلین

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)
    

جاوا

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)