مؤلفه تکمیل خودکار جا پایه
مؤلفه «تکمیل خودکار مکان پایه» در «کیت میانای کاربر مکانها» به شما امکان میدهد مؤلفه میانای کاربر تکیای اضافه کنید که وقتی کاربر مکانی را انتخاب میکند، شناسه مکان را برمیگرداند. این مؤلفه یک پوشش تمامصفحه است که نوار جستجویی را برای کاربران فراهم میکند تا پُرسمان را وارد کنند. همزمان با تایپ کردن کاربر، فهرستی از نتایج تکمیل خودکار در زیر نوار جستجو نشان داده میشود. وقتی کاربر روی مکانی تکضرب میزند، شیء مکان فقط با شناسه مکان به توسعهدهنده برگردانده میشود. این مؤلفه قابلسفارشیسازی است.
مؤلفه «تکمیل خودکار جا» پایه گزینههای سفارشیسازی زیر را دارد: تراکم فهرست، و اینکه نمادهای مکان گنجانده شود یا نه. از AutocompleteUICustomization برای سفارشیسازی کردن مؤلفه استفاده کنید.
میتوانید از مؤلفه «تکمیل خودکار جا» بهطور مستقل یا همراه با دیگر سرویسها و میاناهای برنامهسازی کاربردی Google Maps Platform استفاده کنید.
صورتحساب
هر بار که عنصر باز میشود و پُرسمانی انجام میشود، هزینه از شما کسر میشود. دیگر برای آن جلسه صورتحساب صادر نمیشود، مگر اینکه جلسه منقضی شود یا مکانی از فهرست انتخاب شود.
افزودن عنصر «تکمیل خودکار پایه» به برنامه
پارامترهای فیلتر تکمیل خودکار را (برای مثال، انواع نتایج برگشتی، کشوری که نتایج به آن محدود میشود، مختصات منطقه برای نتایج، مبدأ درخواست برای نمایش اطلاعات فاصله، درصورت وجود) همانطور که برای استفاده از «تکمیل خودکار جا (جدید)» بدون «کیت میانای کاربر جاها» تنظیم میکنید، تنظیم کنید. برای دستورالعملهای کامل و نمونهای از کد برای ایجاد فیلتر تکمیل خودکار، به اسناد «تکمیل خودکار مکان (جدید)» مراجعه کنید.
پساز ایجاد فیلتر تکمیل خودکار، سفارشیسازیهای واسط کاربر خود را اضافه کنید. گزینهها و دستورالعملهای سفارشیسازی را ببینید.
Kotlin
AutocompleteUiCustomization.create( listDensity = AutocompleteListDensity.MULTI_LINE, listItemIcon = AutocompleteUiIcon.noIcon(), theme = R.style.CustomizedTheme, )
جاوا
AutocompleteUiCustomization.builder() .listItemIcon(AutocompleteUiIcon.noIcon()) .listDensity(AutocompleteListDensity.MULTI_LINE) .theme(R.style.CustomizedTheme) .build()
سفارشیسازی مؤلفه «تکمیل خودکار پایه»
سفارشیسازی محتوا
تراکم فهرست
میتوانید انتخاب کنید که فهرست دوخطی یا فهرست چندخطی نمایش داده شود. از گزینههای AutocompleteListDensity (TWO_LINE یا MULTI_LINE) در کلاس AutocompleteUICustomization استفاده کنید. اگر تراکم فهرست را مشخص نکنید، مؤلفه فهرست دوخطی نمایش میدهد.
نماد مکان
میتوانید انتخاب کنید که نماد مکان پیشفرض در فهرست نتایج نمایش داده شود یا نه. از گزینههای AutocompleteUIIcon (listItemDefaultIcon یا noIcon) در کلاس AutocompleteUICustomization استفاده کنید.
سفارشیسازی کردن زمینه
میتوانید زمینهای را مشخص کنید که هرکدام از مشخصههای سبک پیشفرض را لغو کند. میتوانید رنگها، طرح حروف، فاصلهگذاری، حاشیهها، و گوشههای عنصر «جزئیات مکان» را سفارشیسازی کنید. پیشفرض PlacesMaterialTheme است.
هریک از مشخصههای زمینه که ملغی نشده باشد از سبکهای پیشفرض استفاده میکند.
«کیت واسط کاربر مکانها» بهطور پیشفرض زمینه تیره ارائه میدهد، بنابراین ممکن است لازم باشد زمینه تیره و روشن را سفارشیسازی کنید. برای سفارشیسازی کردن زمینه تیره، ورودیای برای رنگ در values-night/colors.xml اضافه کنید.
برای اطلاعات بیشتر درباره زمینهسازی، به بخش سبکبندی سفارشی مراجعه کنید.
افزودن محتوا و سفارشیسازیهای زمینه به عنصر «تکمیل خودکار پایه»
از کلاس AutocompleteUICustomization برای سفارشیسازی عنصر «تکمیل خودکار پایه» استفاده کنید.
Kotlin
.setAutocompleteUiCustomization( AutocompleteUiCustomization.create( listDensity = AutocompleteListDensity.MULTI_LINE, listItemIcon = AutocompleteUiIcon.noIcon(), theme = R.style.CustomizedTheme, ) )
جاوا
.setAutocompleteUiCustomization( AutocompleteUiCustomization.builder() .listItemIcon(AutocompleteUiIcon.noIcon()) .listDensity(AutocompleteListDensity.MULTI_LINE) .theme(R.style.CustomizedTheme) .build() )
مثال
یک مؤلفه «تکمیل خودکار پایه» سفارشی اضافه کنید.
Kotlin
val basicPlaceAutocompleteActivityResultLauncher: ActivityResultLauncher<Intent> = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult -> val intent = result.data val place: Place? = BasicPlaceAutocomplete.getPlaceFromIntent(intent!!) val status: Status? = BasicPlaceAutocomplete.getResultStatusFromIntent(intent!!) // ... } val autocompleteIntent: Intent = BasicPlaceAutocomplete.createIntent(this) { setInitialQuery("INSERT_QUERY_TEXT") setOrigin(LatLng(10.0, 10.0)) // ... setAutocompleteUiCustomization( AutocompleteUiCustomization.create( listDensity = AutocompleteListDensity.MULTI_LINE, listItemIcon = AutocompleteUiIcon.noIcon(), theme = R.style.CustomizedTheme, ) ) } basicPlaceAutocompleteActivityResultLauncher.launch(autocompleteIntent)
جاوا
ActivityResultLauncher<Intent> basicPlaceAutocompleteActivityResultLauncher = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() { @Override public void onActivityResult(ActivityResult result) { Intent intent = result.getData(); if (intent != null) { Place place = BasicPlaceAutocomplete.getPlaceFromIntent(intent); Status status = BasicPlaceAutocomplete.getResultStatusFromIntent(intent); //... } } } ); Intent basicPlaceAutocompleteIntent = new BasicPlaceAutocomplete.IntentBuilder() .setInitialQuery("INSERT_QUERY_TEXT") .setOrigin(new LatLng(10.0, 10.0)) //... .setAutocompleteUiCustomization( AutocompleteUiCustomization.builder() .listItemIcon(AutocompleteUiIcon.noIcon()) .listDensity(AutocompleteListDensity.MULTI_LINE) .theme(R.style.CustomizedTheme) .build()) .build(this); basicPlaceAutocompleteActivityResultLauncher.launch(basicPlaceAutocompleteIntent);
سفارشیسازی کردن زمینه
«کیت میانای کاربر جاها» بهطور پیشفرض زمینه تیره ارائه میدهد، بنابراین ممکن است لازم باشد هم زمینه تیره و هم زمینه روشن را سفارشیسازی کنید. برای سفارشیسازی کردن زمینه تیره، ورودیای برای رنگ در 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>