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

عنصر «جستجوی جاها»

عنصر «جستجوی مکان» در «کیت میانای کاربر جاها» نتایج جستجوی مکان را در فهرستی ارائه می‌کند.

عنصر «جستجوی مکان» در «کیت میانای کاربر جاها»

می‌توانید فهرست «جستجوی مکان» را سفارشی‌سازی کنید. می‌توانید مشخص کنید:

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

همچنین می‌توانید درخواست را سفارشی‌سازی کنید تا SearchByTextRequest یا SearchNearbyRequest را انجام دهد.

صورت‌حساب

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

افزودن «جستجوی مکان» به برنامه

با افزودن PlaceSearchFragment تکه به چیدمانتان، از ابزاره «جستجوی مکان» استفاده کنید.

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

Kotlin

fragment.configureFromSearchByTextRequest(searchByTextRequest)

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

جاوا

fragment.configureFromSearchByTextRequest(searchByTextRequest)

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

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

Kotlin

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) {...}
  }
)
    

سفارشی‌سازی کردن عنصر «جستجوی مکان»

سفارشی‌سازی محتوا

باید مشخص کنید که مؤلفه‌تان کدام محتوا را نمایش خواهد داد.

این مثال مؤلفه را پیکربندی می‌کند تا نشانی و رده‌بندی «مکان» را نمایش دهد.

Kotlin

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 در بالا یا پایین عنصر نشان داده شود.
  • قابل‌انتخاب: اینکه هر مکان در فهرست قابل‌انتخاب باشد یا نه.

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

Kotlin

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() مشخص کنید.

Kotlin

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

جاوا

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

سفارشی‌سازی کردن زمینه

هنگام نمونه‌سازی یک قطعه، می‌توانید زمینه‌ای را مشخص کنید که هریک از مشخصه‌های سبک پیش‌فرض را ملغی می‌کند. می‌توانید رنگ‌ها، طرح حروف، فاصله‌گذاری، حاشیه‌ها، و گوشه‌های عنصر «جزئیات مکان» را سفارشی‌سازی کنید. پیش‌فرض PlacesMaterialTheme است.

هریک از مشخصه‌های زمینه که ملغی نشده باشد از سبک‌های پیش‌فرض استفاده می‌کند.

«کیت واسط کاربر مکان‌ها» به‌طور پیش‌فرض زمینه تیره ارائه می‌دهد، بنابراین ممکن است لازم باشد زمینه تیره و روشن را سفارشی‌سازی کنید. برای سفارشی‌سازی زمینه تیره، ورودی‌ای برای رنگ در values-night/colors.xml اضافه کنید.

برای اطلاعات بیشتر درباره زمینه‌سازی، به بخش سبک‌دهی سفارشی مراجعه کنید.

مثال‌ها

نمونه‌سازی عنصر «جستجوی مکان»

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)
    

جاوا

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)
    

سفارشی‌سازی کردن زمینه

«کیت واسط کاربر مکان‌ها» به‌طور پیش‌فرض زمینه تیره ارائه می‌دهد، بنابراین ممکن است لازم باشد زمینه تیره و روشن را سفارشی‌سازی کنید. برای سفارشی‌سازی زمینه تیره، ورودی‌ای برای رنگ در 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>