mapbox / mapbox/mapbox-maps-flutter

TransparentPointer fail

Aperta
#116 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Dart
Stelle
380
Fork
204
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I'm trying to switch from using the flutter-mapbox-gl plugin to this one, and I ran into an issue...

I'm using a 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: <none> (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?

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo l’assertion con transparent_pointer sopra la mappa in uno Stack, usando i callback dei gesti mostrati nel report. Leggi lo stack dei gesti di Flutter attorno a tap.dart, gesture_detector.dart e agli entry point dei gesti del package della mappa; il lavoro è completato quando l’interazione non genera più un’assertion e i gesti di pan, zoom e rotazione avviati dall’utente possono essere distinti o documentati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
dart, flutter
Ambito
mobile
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.