Bonjour à tous,
Je rencontre un problème suite à la mise à jour de mon application et de ses dépendances. En cliquant sur un POI de ma vue PickingView, j’affichais un widget de description. Cette fonctionnalité ne fonctionne plus et j’obtiens l’erreur suivante :
════════ Exception caught by gesture ═══════════════════════════════════════════
No Scaffold widget found.
The ancestors of this widget were:
════════════════════════════════════════════════════════════════════════════════
Voici le bout de code qui génère le problème :
class PickingView extends StatefulWidget {
final IPickingViewModel _viewModel;
final IBottomNavigationBarWidget _bottomNavigationBarWidget;
const PickingView(this._viewModel, this._bottomNavigationBarWidget,
{super.key});
@override
State<PickingView> createState() => _PickingViewState();
}
class _PickingViewState extends State<PickingView> {
@override
void initState() {
super.initState();
widget._viewModel.getLastUserLocalisation();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: AnimatedBuilder(
animation: widget._viewModel,
builder: (context, child) {
return Stack(
children: [
// Widget de gestion de la map
FlutterMap(
mapController: widget._viewModel.mapController,
options: MapOptions(
interactionOptions: const InteractionOptions(
flags: InteractiveFlag.all & ~InteractiveFlag.rotate),
onMapReady: (() {
widget._viewModel.checkUserLocation();
setState(() {});
}),
// Désactivation du centrage automatique dès qu'on détecte une interaction avec la map
onPointerDown: (event, point) =>
widget._viewModel.isPointerMode(),
initialCenter: LatLng(widget._viewModel.latitude,
widget._viewModel.longitude),
initialZoom: 15.0,
minZoom: 1.0,
maxZoom: 18.0,
cameraConstraint: CameraConstraint.contain(
bounds: LatLngBounds(
const LatLng(-90, -180.0),
const LatLng(90.0, 180.0),
)),
keepAlive: false),
children: [
TileLayer(
urlTemplate:
"https://tile.openstreetmap.org/{z}/{x}/{y}.png",
userAgentPackageName: 'com.pickfungi.app',
),
MarkerLayer(
markers: getMarker(),
)
],
),
...
List<Marker> getMarker() {
final List<Marker> myMarkers = [];
for (var marker in widget._viewModel.poiMarkerList) {
switch (marker.category) {
case PoiCategory.boletus:
myMarkers.add(Marker(
point: LatLng(marker.latitude, marker.longitude),
width: 50,
height: 50,
alignment: Alignment.topCenter,
child: GestureDetector(
onTap: () {
showBottomSheet(
context: context,
builder: (context) => ShowPoiBottomSheet(
widget._viewModel,
marker: marker));
setState(() {});
},
child: const Image(
image: AssetImage("images/bolet_poi_icon.png"),
height: 50.0,
))));
En fouillant sur le net, j’ai l’impression que le problème vient du context et du paramètre « key » mais je ne comprends pas bien ce qui a changé entre avant et après la mise à jour.
Si quelqu’un peut m’aider
Merci d’avance !