AI-generated Key Takeaways
-
OnMapReadyCallback is an interface triggered when the map is ready to be used.
-
Setting an instance of OnMapReadyCallback on a MapFragment or MapView will trigger the onMapReady method with a non-null GoogleMap instance when the map is ready.
-
If Google Play services is not installed, the onMapReady method will only be triggered after the user installs it and returns to the app.
-
The onMapReady method does not guarantee that the map has undergone layout, so you may need to also use a ViewTreeObserver.OnGlobalLayoutListener if dimensions are needed.
-
It is important to register and wait for both OnMapReadyCallback and OnGlobalLayoutListener independently to avoid a race condition when the map's camera needs to be updated with LatLngBounds without dimensions.
Callback interface for when the map is ready to be used.
Once an instance of this interface is set on a MapFragment
or
MapView
object, the
onMapReady(GoogleMap)
method is triggered when the map is ready to be used and
provides a non-null instance of GoogleMap
.
If Google Play services is not installed on the device, the user will be prompted to
install it, and the
onMapReady(GoogleMap)
method will only be triggered when the user has installed it
and returned to the app.
Public Method Summary
abstract void |
Public Methods
public abstract void onMapReady (GoogleMap googleMap)
Called when the map is ready to be used.
Note that this does not guarantee that the map has undergone layout. Therefore, the
map's size may not have been determined by the time the callback method is called. If
you need to know the dimensions or call a method in the API that needs to know the
dimensions, get the map's View
and register
an
ViewTreeObserver.OnGlobalLayoutListener
as well.
Do not chain the OnMapReadyCallback
and
OnGlobalLayoutListener
listeners, but instead register and wait for both
callbacks independently, since the callbacks can be fired in any order.
As an example, if you want to update the map's camera using a LatLngBounds
without dimensions, you should wait until both OnMapReadyCallback
and
OnGlobalLayoutListener
have completed. Otherwise there is a race condition
that could trigger an IllegalStateException
.
Parameters
googleMap | A non-null instance of a GoogleMap associated with the MapFragment
or MapView
that defines the callback. |
---|