عنصر «جستجوی جاها»
عنصر «جستجوی مکان» در «کیت میانای کاربر جاها» نتایج جستجوی مکان را در فهرستی ارائه میکند.
میتوانید فهرست «جستجوی مکان» را سفارشیسازی کنید. میتوانید مشخص کنید:
- محتوای نمایشدادنی
- اندازه رسانه در جهت عمودی
- کوتاه کردن نوشتار
- جهت
- جایگزینهای زمینهای که با نمانام و زبان طراحی برنامه شما مطابقت دارند
- موقعیت اسنادی
- آیا مکان قابلانتخاب است یا نه
همچنین میتوانید درخواست را سفارشیسازی کنید تا 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>