mapbox / mapbox/mapbox-plugins-android

AnnotationManager drag event also firing a long-click on the map

Offen
#1,162 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.