mapbox / mapbox/mapbox-maps-flutter

TransparentPointer fail

Abierto
#116 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Dart
Estrellas
380
Forks
204
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I'm trying to switch from using the [flutter-mapbox-gl](https://github.com/flutter-mapbox-gl/maps) plugin to this one, and I ran into an issue...

I'm using a [transparent pointer](https://pub.dev/packages/transparent_pointer) over the map, in a Stack widget, so I can turn off some automated panning and zooming if the user starts interacting with the map; I'm interpreting gestures as pans, zooms, and rotates, and also letting the gestures bubble through to the map. This works fine with that other mapbox plugin, but with this one I get:

```
I/flutter ( 8823): ⚠️ Unhandled Flutter error: 'package:flutter/src/gestures/tap.dart': Failed assertion: line 210 pos 14: '_down == null && _up == null': is not true.

======== Exception caught by gesture library =======================================================
The following assertion was thrown while dispatching a pointer event:
'package:flutter/src/gestures/tap.dart': Failed assertion: line 210 pos 14: '_down == null && _up == null': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack:
#2 BaseTapGestureRecognizer.addAllowedPointer (package:flutter/src/gestures/tap.dart:210:14)
#3 GestureRecognizer.addPointer (package:flutter/src/gestures/recognizer.dart:160:7)
#4 RawGestureDetectorState._handlePointerDown (package:flutter/src/widgets/gesture_detector.dart:1498:18)
#5 RenderPointerListener.handleEvent (package:flutter/src/rendering/proxy_box.dart:3168:29)
#6 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:440:22)
#7 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:336:11)
#8 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:395:7)
#9 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:357:5)
#10 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:314:7)
#11 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:295:7)
#12 _invoke1 (dart:ui/hooks.dart:164:13)
#13 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:361:7)
#14 _dispatchPointerDataPacket (dart:ui/hooks.dart:91:31)
(elided 2 frames from class _AssertionError)
Event: PointerDownEvent#85236(position: Offset(222.0, 753.2))
position: Offset(222.0, 753.2)
Target: RenderPointerListener#00676 relayoutBoundary=up8
parentData: (can use size)
constraints: BoxConstraints(0.0<=w<=411.4, 0.0<=h<=819.4)
size: Size(411.4, 819.4)
behavior: deferToChild
listeners: down, panZoomStart
```

Is there a way to make this work?

Alternatively, is there a way to listen for *user initiated* zooms, pans, and rotates with this package?

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 reproduciendo la aserción con transparent_pointer sobre el mapa dentro de un Stack, utilizando los callbacks de gestos mostrados en el informe. Lee la pila de gestos de Flutter alrededor de tap.dart, gesture_detector.dart y los puntos de entrada de gestos del paquete del mapa; el trabajo estará terminado cuando la interacción ya no produzca una aserción y los gestos de paneo, zoom y rotación iniciados por el usuario puedan distinguirse o documentarse.

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

Evaluación

Stack tecnológico
dart, flutter
Área
mobile
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.