Flutter: Multiple widgets used the same GlobalKey
Due widget simultaneamente presenti nell'albero dei widget condividono la stessa istanza di `GlobalKey`; le GlobalKey devono essere strettamente univoche a livello di applicazione.
Categoria
Articoli tecnici organizzati per gruppo funzionale.
Due widget simultaneamente presenti nell'albero dei widget condividono la stessa istanza di `GlobalKey`; le GlobalKey devono essere strettamente univoche a livello di applicazione.
La chiamata asincrona su `MethodChannel` fallisce perché il modulo nativo (Java/Kotlin su Android, Swift/Obj-C su iOS) ha generato un'eccezione o non ha implementato il callback del canale.
La chiamata `Provider.of<T>(context)` o `context.watch<T>()` fallisce perché il `Provider` è istanziato al di sotto del contesto corrente o in un differente ramo di navigazione.
Il codice tenta di accedere a `renderBox.size` prima che il frame di rendering sia stato calcolato dalla pipeline grafica.
Un widget `Expanded` o `Spacer` è inserito all'interno di una `Column` che non ha vincoli di altezza (es. dentro una `ListView` o `SingleChildScrollView`); `Expanded` richiede vincoli finiti e non può risiedere dentro uno scroll view non vincolato.
A partire da Flutter 3.7, l'invocazione di plugin nativi (MethodChannel) da un Isolate in background richiede l'inizializzazione esplicita con `BackgroundIsolateBinaryMessenger.ensureInitialized(token)`.
Il `BuildContext` passato al metodo risiede sopra o allo stesso livello dello `Scaffold` nell'albero dei widget anziché al di sotto di esso; si risolve utilizzando il widget `Builder` o `ScaffoldMessenger.of(context)`.
Una funzione asincrona (`Future`, `Stream` o timer) tenta di invocare `setState()` quando l'utente ha già abbandonato la schermata e l'albero dei widget è stato distrutto; si previene verificando `if (mounted) setState(...)`.