Thành phần Tìm kiếm địa điểm
Thành phần Tìm kiếm địa điểm của Places UI Kit hiển thị kết quả tìm kiếm địa điểm trong một danh sách.

Bạn có thể tuỳ chỉnh danh sách Tìm kiếm địa điểm. Bạn có thể chỉ định:
- Nội dung cần hiển thị
- Kích thước của nội dung nghe nhìn ở hướng dọc
- Rút ngắn văn bản
- Hướng
- Các chế độ ghi đè giao diện phù hợp với thương hiệu và ngôn ngữ thiết kế của ứng dụng
- Vị trí của thông tin ghi công
- Liệu một địa điểm có thể chọn được hay không
Bạn cũng có thể tuỳ chỉnh yêu cầu để thực hiện Search by text request
hoặc Search Nearby request
.
Thanh toán
Bạn sẽ bị tính phí mỗi khi giá trị liên kết configureFromSearchByTextRequest()
hoặc configureFromSearchNearbyRequest()
thay đổi.
Thêm tính năng Tìm kiếm địa điểm vào ứng dụng
Sử dụng tiện ích Tìm kiếm địa điểm bằng cách thêm PlaceSearchFragment
Mảnh vào bố cục.
Khi bạn muốn ứng dụng tải một kết quả tìm kiếm bằng văn bản hoặc kết quả tìm kiếm lân cận, hãy gọi configureFromSearchByTextRequest()
hoặc configureFromSearchNearbyRequest()
bằng yêu cầu.
Kotlin
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
Java
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
Bạn cũng có thể thêm PlaceSearchFragmentListener
(không bắt buộc) vào thành phần để nhận các lệnh gọi lại khi thành phần tải, một địa điểm được chọn (nếu được đặt thành có thể chọn) hoặc khi có lỗi tải thành phần.
Kotlin
fragment.registerListener( object : PlaceSearchFragmentListener { override fun onLoad(places: List<Place>) {...} override fun onRequestError(e: Exception) {...} override fun onPlaceSelected(place: Place) {...} } )
Java
fragment.registerListener( new PlaceSearchFragmentListener() { @Override public void onLoad(List<? extends Place> places) {...} @Override public void onRequestError(Exception e) {...} @Override public void onPlaceSelected(Place place) {...} } )
Tuỳ chỉnh thành phần Tìm kiếm địa điểm
Tuỳ chỉnh nội dung
Bạn phải chỉ định nội dung mà thành phần sẽ hiển thị.Ví dụ này định cấu hình thành phần để hiển thị địa chỉ và điểm xếp hạng của Địa điểm.
Kotlin
val fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS, Content.RATING))
Java
PlaceSearchFragment fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS,Content.RATING));
Bạn cũng có thể tuỳ chỉnh (không bắt buộc) các khía cạnh sau đây của nội dung xuất hiện trong thành phần Tìm kiếm địa điểm:
- PlaceSearchFragment.Content: Nội dung xuất hiện trong thành phần.
- mediaSize: Kích thước ảnh theo hướng dọc của mảnh. Giá trị mặc định là
SMALL
. - preferTruncation: Có nên cắt bớt văn bản của từng khung hiển thị Chi tiết về địa điểm hay không.
- attributionPosition: Có hiển thị thông tin ghi nhận quyền sở hữu của Google Maps ở đầu hay cuối thành phần hay không.
- selectable: Liệu mỗi địa điểm trong danh sách có thể chọn hay không.
Thêm cấu hình tuỳ chỉnh vào PlaceSearchFragment
.
Kotlin
fragment.preferTruncation = false fragment.attributionPosition = AttributionPosition.BOTTOM fragment.mediaSize = MediaSize.SMALL fragment.selectable = true
Java
fragment.setPreferTruncation(false) fragment.setAttributionPosition(AttributionPosition.BOTTOM) fragment.setMediaSize(MediaSize.SMALL) fragment.setSelectable(true)
Tuỳ chỉnh hướng
Hướng mặc định là hướng dọc. Đối với hướng ngang, hãy chỉ định Orientation.HORIZONTAL
trong PlaceSearchFragment.newInstance()
.
Kotlin
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
Java
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
Tuỳ chỉnh giao diện
Khi tạo một mảnh, bạn có thể chỉ định một giao diện ghi đè bất kỳ thuộc tính kiểu mặc định nào. Mặc định là PlacesMaterialTheme
. Hãy xem tài liệu về Thành phần thông tin chi tiết về địa điểm để biết thêm thông tin về việc tạo giao diện.
Mọi thuộc tính giao diện không bị ghi đè sẽ sử dụng kiểu mặc định. Nếu muốn hỗ trợ giao diện tối, bạn có thể thêm một mục cho màu trong 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>
Ví dụ:
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)
Java
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)