Как мне добавить общий виджет для каждого экрана в приложении. Я нашел другой ответ в StackOverflow, но я не хотел бы добавлять страницу CommonWidgets на каждую страницу отдельно. Я ищу способ объявить общие виджеты только один раз.
Я пытаюсь включить Экран оповещения, который может быть доступен через приложение флаттера, и я хочу, чтобы виджет AlertsScreen
управлялся состоянием (т.е. , pu sh значений до AlertsScreenState
отовсюду, тогда всплывают оповещения).
Я сделал что-то вроде этого:
MaterialApp(
builder: (BuildContext context, Widget widget) {
setErrorBuilder();
return Column(
children: <Widget>[
Expanded(
child: widget,
),
AlertsScreen(),
],
);
},
title: 'App name',
onGenerateRoute: Router.onGenerateRoute,
initialRoute: Router.splashScreen,
navigatorKey: Router.navigator.key,
),
Это работает нормально, и даже я мог бы сделать управление состоянием mobx прекрасно, но когда я пытаюсь отобразить любой виджет, используя контекст внутри AlertsScreen
виджет, который выдает мне ошибку:
[ОШИБКА: flutter / lib / ui / ui_dart_state. cc (157)] Необработанное исключение: запрошена операция навигатора с контекстом, который не включить навигатор. Контекст, используемый для pu sh или всплывающих маршрутов из навигатора, должен соответствовать контексту виджета, являющегося потомком виджета навигатора.
Flu sh пример бара:
Flushbar(
title: 'title',
message: 'body',
duration: const Duration(seconds: 5),
).show(context);
Вышеуказанная ошибка выдается всякий раз, когда я пытаюсь показать Flushbar
, используя контекст виджета AlertsScreen
. Я подозреваю, что эта ошибка возникает из-за того, что навигатор в данный момент отображает другой виджет приложения, а AlertsScreen
не может правильно получить доступ к контексту.
Как мне заставить его работать?