Ely*_*lye 7 android google-maps android-viewholder android-recyclerview
在使用GoogleMap Lite的ViewHolder时,作为RecyclerView中行的一部分,我正在寻找回调来在Map准备就绪时设置引脚位置.我发现下面的两个功能.
OnMapLoadedCallback:https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.OnMapLoadedCallback?hl = en
OnMapReadyCallback:https://developers.google.com/android/reference/com/google/android/gms/maps/OnMapReadyCallback
两者都证明有效和可用(如下所示).因此,我很困惑,如果他们确实有任何特定的不同行为,应该在不同的场合使用,或者他们确实相似,可以互换使用?
使用OnMapLoadedCallback:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Marker marker : markers) {
builder.include(marker.getPosition());
}
final CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(builder.build(), 0);
googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
googleMap.moveCamera(cameraUpdate);
}
});
Run Code Online (Sandbox Code Playgroud)
使用OnMapReadyCallback:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Marker marker : markers) {
builder.include(marker.getPosition());
}
final CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(builder.build(), 0);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.moveCamera(cameraUpdate);
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢!!
您可以安全地使用OnMapReadyCallback设置引脚.只要地图准备就绪,您就可以使用它.
OnMapLoadedCallback正如文档所述,被称为
当地图完成渲染时.在获取渲染地图所需的所有图块并且所有标记完成之后,会发生这种情况.
例如.地图的内容已完全加载且可见.
这比OnMapReady晚发生.我没有理由等待那件事.
编辑:调用 googleMap.setOnMapLoadedCallback甚至意味着OnMapReady已经碰巧能够安全地调用(googleMap != null).
| 归档时间: |
|
| 查看次数: |
5780 次 |
| 最近记录: |