[android] #5968 - add support for a layout editor preview, show a drawable and some overlain items

This commit is contained in:
Tobrun
2016-08-12 12:22:20 -04:00
parent d4271d993e
commit 834ff765c0
3 changed files with 52 additions and 9 deletions

View File

@@ -185,25 +185,23 @@ public class MapView extends FrameLayout {
}
private void initialize(@NonNull Context context, @NonNull MapboxMapOptions options) {
if (isInEditMode()) {
// if we are in an editor mode we show an image of a map
LayoutInflater.from(context).inflate(R.layout.mapview_preview, this);
return;
}
mInitialLoad = true;
mOnMapReadyCallbackList = new ArrayList<>();
mOnMapChangedListener = new CopyOnWriteArrayList<>();
mMapboxMap = new MapboxMap(this);
mIcons = new ArrayList<>();
View view = LayoutInflater.from(context).inflate(R.layout.mapview_internal, this);
if (!isInEditMode()) {
setWillNotDraw(false);
}
setWillNotDraw(false);
// Reference the TextureView
SurfaceView surfaceView = (SurfaceView) view.findViewById(R.id.surfaceView);
// Check if we are in Android Studio UI editor to avoid error in layout preview
if (isInEditMode()) {
return;
}
mNativeMapView = new NativeMapView(this);
// Ensure this view is interactable
@@ -1506,6 +1504,10 @@ public class MapView extends FrameLayout {
// Called when view is hidden and shown
@Override
protected void onVisibilityChanged(@NonNull View changedView, int visibility) {
if (isInEditMode()) {
return;
}
// Required by ZoomButtonController (from Android SDK documentation)
if (mMapboxMap.getUiSettings().isZoomControlsEnabled() && (visibility != View.VISIBLE)) {
mZoomButtonsController.setVisible(false);