mapbox / mapbox/mapbox-plugins-android
AnnotationManager drag event also firing a long-click on the map
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 242
- Forks
- 116
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I'm using the latest 9.6.0 Mapbox SDK and the latest annotation plugin too. I'm creating some circles on my map (using CircleManager) and have setup a drag listener for them. This all works fine, but when dragging a circle it _also_ seems to fire a long-click event on the map as well.
I note that dragging a circle does _not_ fire a regular click event on the map. It only fires a long-click event.
This minimal code example reproduces the issue:
@Override
public void onMapReady(@NonNull final MapboxMap mapboxMap) {
MainActivity.this.mapboxMap = mapboxMap;
mapboxMap.setStyle(
createStyleBuilder(STYLE_DEFAULT),
style -> {
initCircleManager(style);
initMapClicks();
});
}
private void initCircleManager(Style style) {
circleManager = new CircleManager(mapView, mapboxMap, style);
// snip - add a circle here, mark it as draggable
circleManager.addDragListener(new OnCircleDragListener() {
@Override
public void onAnnotationDragStarted(Circle annotation) {
}
@Override
public void onAnnotationDrag(Circle annotation) {
}
@Override
public void onAnnotationDragFinished(Circle annotation) {
System.out.println("Circle dragged to "+annotation.getLatLng());
}
});
}
private void initMapClicks() {
mapboxMap.addOnMapLongClickListener(point -> {
System.out.println("Map long-clicked at "+point);
});
}
This results in the following output:
I/System.out: Circle dragged to LatLng [latitude=51.48172356366564, longitude=0.013026118189969793, altitude=0.0]
I/System.out: Map long-clicked at LatLng [latitude=51.48312269584446, longitude=0.01208949814909488, altitude=0.0]
My expectation is that dragging the circle should not result in any events being fired at the map level.
Am I doing something wrong or is this a bug? I can't find any issue that matches this.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem CircleManager-Drag-Listener und dem mapboxMap-Long-Click-Listener im minimalen Beispiel und reproduziere anschließend die Interaktion mit einem ziehbaren Kreis. Das Ziel ist erreicht, wenn das Ziehen des Kreises weiterhin den Abschluss des Ziehens meldet, ohne ein Long-Click-Event auf Kartenebene auszulösen, während das gemeldete Long-Click-Verhalten der Karte für Kartengesten verfügbar bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, java
- Bereich
- mobile
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100