Отображение диалогового окна с дрожанием нижней панели навигации

Я хочу отображать диалог вместо функции, используя нижнюю панель навигации во флаттере. Как я могу это реализовать?

 @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() кнопки или чего-то подобного, требующего действия для запуска функции.

Другие вопросы по тегам