Chú thích hiển thị nội dung (thường là văn bản hoặc hình ảnh) trong một cửa sổ bong bóng thông tin phía trên bản đồ, tại một vị trí nhất định. Popover có một vùng nội dung và một cuống thon. Đầu của cuống được gắn vào một vị trí cụ thể trên bản đồ.
Thông thường, bạn sẽ đính kèm một cửa sổ bật lên vào một điểm đánh dấu, nhưng bạn cũng có thể đính kèm cửa sổ bật lên vào một toạ độ LatLng cụ thể.
Thêm cửa sổ bật lên
Để thêm một cửa sổ bật lên, hãy tạo một đối tượng Popover và đặt các lựa chọn cho đối tượng đó, bao gồm cả chế độ vị trí và độ cao. Vị trí là một đối tượng LatLng bao gồm vĩ độ, kinh độ và độ cao, giúp xác định vị trí hiển thị cửa sổ bật lên. Nếu bạn cố định vào một điểm đánh dấu, thì vị trí của điểm đánh dấu sẽ được dùng.
Bạn cũng có thể kiểm soát cách diễn giải độ cao bằng cách đặt chế độ độ cao.
Nội dung của một cửa sổ bật lên phải nằm trong AndroidView. Theo mặc định, popover có thể cuộn và có chiều cao tối đa được xác định trước.
Neo cửa sổ bật lên vào một điểm đánh dấu
Bạn có thể cố định cửa sổ bật lên vào các điểm đánh dấu. Khi thêm một cửa sổ bật lên được neo vào một điểm đánh dấu, bạn cần liên kết cửa sổ bật lên đó với một đối tượng Marker.
class MapManager(private val map: MapView) {
/**
* Adds a popover anchored to a marker.
* @param context The Context required to instantiate UI views.
*/
fun addPopoverToMarker(context: Context) {
// 1. Create a marker
val markerOptions = markerOptions {
position = latLngAltitude {
latitude = 37.422
longitude = -122.084
altitude = 0.0
}
}
val marker = map.addMarker(markerOptions) ?: return
// 2. Create the custom view using the passed-in context
val textView = TextView(context).apply {
text = context.getString(R.string.popover_hello)
setPadding(16, 16, 16, 16)
setBackgroundColor(Color.WHITE)
setTextColor(Color.BLACK)
}
// 3. Configure and display the popover
val options = popoverOptions {
content = textView
positionAnchor = marker
altitudeMode = AltitudeMode.RELATIVE_TO_GROUND
}
val popover = map.addPopover(options)
popover.show()
}
}
Thêm một cửa sổ bật lên đã định cấu hình
Mẫu sau đây sẽ thêm một cửa sổ bật lên tự động đóng khi người dùng nhấn bên ngoài cửa sổ bật lên và không tự động di chuyển đến các cửa sổ bật lên mới mở:
/**
* Adds a configured popover (auto-close enabled, auto-pan disabled).
* @param context The Context used to inflate the UI and retrieve string resources.
*/
fun addConfiguredPopover(context: Context) {
// 1. Initialize the view with the explicit context
val textView = TextView(context).apply {
text = context.getString(com.example.snippets.common.R.string.popover_info)
setPadding(12, 12, 12, 12)
setBackgroundColor(Color.WHITE)
setTextColor(Color.BLACK)
}
// 2. Configure popover behavior
val options = popoverOptions {
content = textView
// Setting a fixed coordinate anchor
positionAnchor = latLngAltitude {
latitude = 0.0
longitude = 0.0
altitude = 0.0
}
autoCloseEnabled = true // Closes automatically when the map is tapped elsewhere
autoPanEnabled = false // Map camera remains stationary when popover appears
}
// 3. Add to the map instance
map.addPopover(options)
}