From 2646f22d069401749410452328324d64a6d48ee2 Mon Sep 17 00:00:00 2001 From: kevin Date: Mon, 10 Jun 2019 13:43:44 +0800 Subject: [PATCH] Change the update strategy of marker view --- .../plugins/markerview/MarkerViewManager.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/plugin-markerview/src/main/java/com/mapbox/mapboxsdk/plugins/markerview/MarkerViewManager.java b/plugin-markerview/src/main/java/com/mapbox/mapboxsdk/plugins/markerview/MarkerViewManager.java index 757f91210..1d306c891 100644 --- a/plugin-markerview/src/main/java/com/mapbox/mapboxsdk/plugins/markerview/MarkerViewManager.java +++ b/plugin-markerview/src/main/java/com/mapbox/mapboxsdk/plugins/markerview/MarkerViewManager.java @@ -12,7 +12,7 @@ /** * Class responsible for synchronising views at a LatLng on top of a Map. */ -public class MarkerViewManager implements MapView.OnDidFinishRenderingFrameListener { +public class MarkerViewManager implements MapView.OnCameraDidChangeListener { private final MapView mapView; private final MapboxMap mapboxMap; @@ -39,7 +39,7 @@ public MarkerViewManager(MapView mapView, MapboxMap mapboxMap) { @UiThread public void onDestroy() { markers.clear(); - mapView.removeOnDidFinishRenderingFrameListener(this); + mapView.removeOnCameraDidChangeListener(this); initialised = false; } @@ -56,11 +56,12 @@ public void addMarker(@NonNull MarkerView markerView) { if (!initialised) { initialised = true; - mapView.addOnDidFinishRenderingFrameListener(this); + mapView.addOnCameraDidChangeListener(this); } markerView.setProjection(mapboxMap.getProjection()); mapView.addView(markerView.getView()); markers.add(markerView); + markerView.update(); } /** @@ -78,16 +79,14 @@ public void removeMarker(@NonNull MarkerView markerView) { markers.remove(markerView); } - @Override - public void onDidFinishRenderingFrame(boolean fully) { - if (fully) { - update(); - } - } - private void update() { for (MarkerView marker : markers) { marker.update(); } } + + @Override + public void onCameraDidChange(boolean animated) { + update(); + } }