Отображение диалогового окна с дрожанием нижней панели навигации
Я хочу отображать диалог вместо функции, используя нижнюю панель навигации во флаттере. Как я могу это реализовать?
@override
Widget build(BuildContext context) {
Widget child = Container();
switch(_selectedIndex) {
case 0:
child = function_1();
print("done");
break;
case 1:
child = function_1();
break;
}
Когда я использую метод ShowDialog, он говорит:
The following assertion was thrown building ServerGrid(dirty; state: _ServerGridState#59211289()):
I/flutter (14351): setState() or markNeedsBuild() called during build.
I/flutter (14351): This Overlay widget cannot be marked as needing to build because the framework is already in the
I/flutter (14351): process of building widgets. A widget can be marked as needing to be built during the build phase
I/flutter (14351): only if one of its ancestors is currently building. This exception is allowed because the framework
I/flutter (14351): builds parent widgets before children, which means a dirty descendant will always be built.
I/flutter (14351): Otherwise, the framework might not visit this widget during this build phase.
1 ответ
AlertDialog можно использовать для отображения чего-то похожего на диалоговое окно во Flutter. Вы можете ознакомиться с документацией , которая также включает образец, который вы можете запустить.
Что касается ошибкиsetState() or markNeedsBuild() called during build.
что ты получаешь. Обычно это происходит, когдаsetState()
находится в Widget build() . Распространенным решением этой проблемы является размещение setState() внутри onPressed() кнопки или чего-то подобного, требующего действия для запуска функции.