Компонент поиска места
Компонент поиска места из комплекта пользовательского интерфейса Places отображает результаты поиска места в виде списка.

Вы можете настроить список поиска мест. Вы можете указать:
- Контент для отображения
 - Размер носителя в вертикальной ориентации
 - Усечение текста
 - Ориентация
 - Переопределения тем, соответствующие вашему бренду и языку дизайна приложения
 - Позиция атрибуции
 - Можно ли выбрать место
 
 Вы также можете настроить запрос для выполнения SearchByTextRequest или SearchNearbyRequest .
Биллинг
 С вас будет взиматься плата каждый раз, когда изменяется значение привязки 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 .
Все атрибуты темы, которые не переопределены, используют стили по умолчанию.
 В Places UI Kit по умолчанию установлена тёмная тема, поэтому вам может потребоваться настроить как тёмную, так и светлую. Чтобы настроить тёмную тему, добавьте запись цвета в values-night/colors.xml .
Дополнительную информацию о темах см. в разделе «Пользовательский стиль» .
Примеры
Создайте компонент поиска места
Котлин
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)
Настройте тему
 В Places UI Kit по умолчанию установлена тёмная тема, поэтому вам может потребоваться настроить как тёмную, так и светлую. Чтобы настроить тёмную тему, добавьте запись цвета в 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>