[android] #3276 - View Marker click listener integration
This commit is contained in:
@@ -71,6 +71,7 @@ public class MapboxMap {
|
||||
|
||||
private MapboxMap.InfoWindowAdapter mInfoWindowAdapter;
|
||||
private MapboxMap.MarkerViewAdapter mMarkerViewAdapter;
|
||||
private OnMarkerViewClickListener mOnMarkerViewClickListener;
|
||||
|
||||
private boolean mMyLocationEnabled;
|
||||
private boolean mAllowConcurrentMultipleInfoWindows;
|
||||
@@ -648,12 +649,23 @@ public class MapboxMap {
|
||||
}
|
||||
|
||||
List<Marker> inBoundsMarkers = result.getInBounds();
|
||||
for (Marker marker : inBoundsMarkers) {
|
||||
for (final Marker marker : inBoundsMarkers) {
|
||||
convertView = viewSimplePool.acquire();
|
||||
View adaptedView = mMarkerViewAdapter.getView(marker, convertView, mMapView);
|
||||
mMarkerViews.append(marker.getId(), adaptedView);
|
||||
if (convertView == null) {
|
||||
mMapView.addView(adaptedView);
|
||||
if(adaptedView!=null) {
|
||||
adaptedView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if(mOnMarkerViewClickListener!=null){
|
||||
mOnMarkerViewClickListener.onMarkerClick(marker, v);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
mMarkerViews.append(marker.getId(), adaptedView);
|
||||
if (convertView == null) {
|
||||
mMapView.addView(adaptedView);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1185,6 +1197,14 @@ public class MapboxMap {
|
||||
return mMarkerViewAdapter;
|
||||
}
|
||||
|
||||
public void setOnMarkerViewClickListener(@Nullable OnMarkerViewClickListener listener){
|
||||
mOnMarkerViewClickListener = listener;
|
||||
}
|
||||
|
||||
public OnMarkerViewClickListener getOnMarkerViewClickListener() {
|
||||
return mOnMarkerViewClickListener;
|
||||
}
|
||||
|
||||
//
|
||||
// InfoWindow
|
||||
//
|
||||
@@ -1779,6 +1799,11 @@ public class MapboxMap {
|
||||
View getView(@NonNull U marker, @Nullable View convertView, @NonNull ViewGroup parent);
|
||||
}
|
||||
|
||||
public interface OnMarkerViewClickListener{
|
||||
|
||||
void onMarkerClick(@NonNull Marker marker, @NonNull View view);
|
||||
}
|
||||
|
||||
/**
|
||||
* Interface definition for a callback to be invoked when the the My Location view changes location.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user