mapbox / mapbox/mapbox-maps-flutter
TransparentPointer fail
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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- 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