Skip to content

Commit c1a9965

Browse files
author
Kevin Li
authored
Change the update strategy of marker view (#984)
1 parent 2623aff commit c1a9965

1 file changed

Lines changed: 9 additions & 10 deletions

File tree

plugin-markerview/src/main/java/com/mapbox/mapboxsdk/plugins/markerview/MarkerViewManager.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
/**
1313
* Class responsible for synchronising views at a LatLng on top of a Map.
1414
*/
15-
public class MarkerViewManager implements MapView.OnDidFinishRenderingFrameListener {
15+
public class MarkerViewManager implements MapView.OnCameraDidChangeListener {
1616

1717
private final MapView mapView;
1818
private final MapboxMap mapboxMap;
@@ -39,7 +39,7 @@ public MarkerViewManager(MapView mapView, MapboxMap mapboxMap) {
3939
@UiThread
4040
public void onDestroy() {
4141
markers.clear();
42-
mapView.removeOnDidFinishRenderingFrameListener(this);
42+
mapView.removeOnCameraDidChangeListener(this);
4343
initialised = false;
4444
}
4545

@@ -56,11 +56,12 @@ public void addMarker(@NonNull MarkerView markerView) {
5656

5757
if (!initialised) {
5858
initialised = true;
59-
mapView.addOnDidFinishRenderingFrameListener(this);
59+
mapView.addOnCameraDidChangeListener(this);
6060
}
6161
markerView.setProjection(mapboxMap.getProjection());
6262
mapView.addView(markerView.getView());
6363
markers.add(markerView);
64+
markerView.update();
6465
}
6566

6667
/**
@@ -78,16 +79,14 @@ public void removeMarker(@NonNull MarkerView markerView) {
7879
markers.remove(markerView);
7980
}
8081

81-
@Override
82-
public void onDidFinishRenderingFrame(boolean fully) {
83-
if (fully) {
84-
update();
85-
}
86-
}
87-
8882
private void update() {
8983
for (MarkerView marker : markers) {
9084
marker.update();
9185
}
9286
}
87+
88+
@Override
89+
public void onCameraDidChange(boolean animated) {
90+
update();
91+
}
9392
}

0 commit comments

Comments
 (0)