جزء جستجوی مکان
مؤلفه جستجوی مکان در کیت 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)