mapbox / mapbox/mapbox-plugins-android

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

Abierto
#1,162 7 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Java
Estrellas
242
Forks
116
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el listener de arrastre de CircleManager y el listener de pulsación larga de mapboxMap en el ejemplo mínimo; después, reproduce la interacción con un círculo arrastrable. Se considera terminado cuando arrastrar el círculo sigue notificando la finalización del arrastre sin activar un evento de pulsación larga a nivel del mapa, mientras el comportamiento de pulsación larga del mapa que se notifica sigue disponible para los gestos del mapa.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
android, java
Área
mobile
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.