我需要实时更新一些依赖于地图坐标的UI元素位置。有时,我的UI布局会发生变化,并且地图会调整大小,然后会设置动画以调整为新的大小。我找不到一种方法来检测视图何时完成大小调整。
我可以轻松检测到相机移动事件,但是它们似乎并没有在调整大小时触发。
答案 0 :(得分:1)
摘自文档:
https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.OnMapLoadedCallback
对地图的任何更改都应在此回调内部完成,或者看看https://developers.google.com/android/reference/com/google/android/gms/maps/OnMapReadyCallback。
要潜在地检查地图的大小,请从OnMapReadyCallback查看一下:
这意味着您可能必须为特定地图实施ViewTreeObserver.OnGlobalLayoutListener
,并据此可能在调整大小时实现更改。
答案 1 :(得分:1)
open class MapFragment() : BaseFragment(), OnMapReadyCallback,GoogleMap.OnMapLoadedCallback {
}
使用OnMapReadyCallback来了解地图是否已准备就绪或初始加载
override fun onMapReady(googleMap: GoogleMap?) {}
并使用GoogleMap.OnMapLoadedCallback,以了解更改后是否加载了地图。
override fun onMapLoaded() {}