From d929e322172511c11bf3cca38b95894083f1df65 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 7 Jul 2016 10:50:13 +0200 Subject: [PATCH] [android] #5513 - make sure view is measured first before anchoring --- .../com/mapbox/mapboxsdk/annotations/MarkerViewManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java index 6ca97ac53..44de157e6 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java @@ -116,6 +116,10 @@ public class MarkerViewManager { if (convertView != null) { PointF point = mapboxMap.getProjection().toScreenLocation(marker.getPosition()); if (marker.getOffsetX() == -1) { + // ensure view is measured first + if (convertView.getMeasuredWidth() == 0) { + convertView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); + } int x = (int) (marker.getAnchorU() * convertView.getMeasuredWidth()); int y = (int) (marker.getAnchorV() * convertView.getMeasuredHeight()); marker.setOffset(x, y);