Obecny Android Google Maps API wymaga połączenia mapFragment.getMapAsync
z OnMapReadyCallback
, zanim będzie można uzyskać dostęp do GoogleMap
. Zakładałem, że gdy już raz masz GoogleMap
, będzie bezpiecznie zadzwonić pod numer moveCamera()
, ale widziałem raporty o awariach z IllegalStateException
, które mówiły: Map size can't be 0. Most likely, layout has not yet occured for the map view
.Kiedy można wywołać GoogleMap.moveCamera po onMapReady z OnMapReadyCallback?
Tak więc próbowałem dodać ViewTreeObserver.OnPreDrawListener
i przenieść wywołanie moveCamera()
do metody onPreDraw
, jako dokumentację dla tego słowa "W tym momencie wszystkie widoki w drzewie zostały zmierzone i otrzymały ramkę". Ale I nadal zobacz niektóre raporty o awariach z tym samym problemem. Nie mogę znaleźć żadnej dokumentacji na ten temat - są takie pytania, jak moveCamera with CameraUpdateFactory.newLatLngBounds crashes, ale wcześniejszy interfejs API getMapAsync
, więc nie są zbyt pomocne.
widzę to też - dziwnie, wydaje się jedynie wpływać na ruchy kamery do 'CameraUpdateFactory.newLatLngBounds (granice wyściółka)', ale nie 'CameraUpdateFactory.newLatLng (długość i szerokość geograficzną) '- więc zakładam, że ma to coś wspólnego z paddingiem. Mogę replikować podczas tworzenia nowej aktywności mapy z szablonu w Android Studio na LG G4 w/Android 5.1. –