add flag to let concurrent multiple infowindows to be shown

This commit is contained in:
Antonio Zugaldia
2015-11-30 11:32:25 -05:00
parent e7c4ee49b1
commit e9d749b775
3 changed files with 36 additions and 2 deletions

View File

@@ -240,6 +240,7 @@ public final class MapView extends FrameLayout {
private boolean mZoomEnabled = true;
private boolean mScrollEnabled = true;
private boolean mRotateEnabled = true;
private boolean mAllowConcurrentMultipleOpenInfoWindows = false;
private String mStyleUrl;
//
@@ -1292,6 +1293,30 @@ public final class MapView extends FrameLayout {
}
}
//
// InfoWindows
//
/**
* Changes whether the map allows concurrent multiple infowindows to be shown.
*
* @param allow If true, map allows concurrent multiple infowindows to be shown.
*/
@UiThread
public void setAllowConcurrentMultipleOpenInfoWindows(boolean allow) {
this.mAllowConcurrentMultipleOpenInfoWindows = allow;
}
/**
* Returns whether the map allows concurrent multiple infowindows to be shown.
*
* @return If true, map allows concurrent multiple infowindows to be shown.
*/
@UiThread
public boolean isAllowConcurrentMultipleOpenInfoWindows() {
return this.mAllowConcurrentMultipleOpenInfoWindows;
}
//
// Debug
//
@@ -2003,7 +2028,8 @@ public final class MapView extends FrameLayout {
/**
* Selects a marker. The selected marker will have it's info window opened.
* Any other open info windows will be closed.
* Any other open info windows will be closed unless isAllowConcurrentMultipleOpenInfoWindows()
* is true.
* <p/>
* Selecting an already selected marker will have no effect.
*
@@ -2021,7 +2047,9 @@ public final class MapView extends FrameLayout {
}
// Need to deselect any currently selected annotation first
deselectMarker(marker);
if (!isAllowConcurrentMultipleOpenInfoWindows()) {
deselectMarkers();
}
boolean handledDefaultClick = false;
if (mOnMarkerClickListener != null) {

View File

@@ -35,6 +35,9 @@ public class InfoWindowActivity extends AppCompatActivity {
mMapView.setAccessToken(ApiAccess.getToken(this));
mMapView.onCreate(savedInstanceState);
// Enable to let concurrent multiple infowindows to be shown.
//mMapView.setAllowConcurrentMultipleOpenInfoWindows(true);
mMapView.addMarker(new MarkerOptions()
.title("Intersection")
.snippet("H St NW with 15th St NW")

View File

@@ -64,6 +64,9 @@ public class InfoWindowAdapterActivity extends AppCompatActivity {
}
});
// Enable to let concurrent multiple infowindows to be shown.
//mMapView.setAllowConcurrentMultipleOpenInfoWindows(true);
mMapView.addMarker(generateMarker("Andorra", 42.505777, 1.52529, "#F44336"));
mMapView.addMarker(generateMarker("Luxembourg", 49.815273, 6.129583, "#3F51B5"));
mMapView.addMarker(generateMarker("Monaco", 43.738418, 7.424616, "#673AB7"));