Mapbox: функция createState для MapWidget вернула старый или недопустимый экземпляр состояния.IOS

Программируем под IOS
Ответить
Гость
 Mapbox: функция createState для MapWidget вернула старый или недопустимый экземпляр состояния.

Сообщение Гость »

Я новичок в Flutter и MapBox, поэтому извините, если этот вопрос слишком наивен.
Я создаю приложение, в котором есть страница, которая выглядит следующим образом:
Column
- Expanded
-- ListView
--- MapBox Map Widget
--- Many Rows

Когда я прокручиваю карту вниз до тех пор, пока карта не исчезнет, ​​а затем, когда я прокручиваю ее назад, я получаю эту ошибку:
════════ Exception caught by widgets library ═══════════════════════════════════
The following assertion was thrown building _SelectionKeepAlive(state: _SelectionKeepAliveState#b960e):
The createState function for MapWidget returned an old or invalid state instance: MapWidget, which is not null, violating the contract for createState.
'package:flutter/src/widgets/framework.dart':
Failed assertion: line 5573 pos 7: 'state._widget == null'

Я знаю, что это может быть вызвано тем, что ListView уничтожает и воссоздает представление карты, но как решить эту ошибку?
Еще одно решение, которое я предлагаю думал, но еще не пробовал, — использовать представление прокрутки вместо представления списка, потому что представление прокрутки, похоже, не уничтожает представление карты, когда оно скрыто.
Есть ли решение без прибегаете к ScrollView?
Вот часть кода моей функции сборки, в которой создается карта:
newTripPlanListView.insert(0,Padding(padding: EdgeInsets.all(4.0), child:
ConstrainedBox(constraints: new BoxConstraints(maxHeight: 500), child: MapWidget(
key: ValueKey("TravelMap"),
onMapCreated: (map) {
log("Map is created");
travelMap = map;

travelMap!.annotations.createPointAnnotationManager().then((pointAnnotationManager) async {
// some code to set up annotations and move the camera
});
},
),),));


Подробнее здесь: https://stackoverflow.com/questions/781 ... state-inst
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»