مؤلفه تکمیل خودکار جا پایه

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

مؤلفه «تکمیل خودکار جا» پایه گزینه‌های سفارشی‌سازی زیر را دارد: تراکم فهرست، و اینکه نمادهای مکان گنجانده شود یا نه. از AutocompleteUICustomization برای سفارشی‌سازی مؤلفه استفاده کنید.

می‌توانید از مؤلفه Basic Place Autocomplete به‌طور مستقل یا همراه با دیگر میاناهای برنامه‌سازی کاربردی و سرویس‌های 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>