首页 > 解决方案 > showGeneralDialog 未按预期工作

问题描述

代码:

void showNow() {
    showGeneralDialog(
      context: context,
      pageBuilder: (BuildContext buildContext, Animation<double> animation, Animation<double> secondaryAnimation) {
        return Container(
          width: 200.0,
          height: 200.0,
          color: Colors.orange,
        ); 
      },
      barrierDismissible: true,
      barrierLabel: MaterialLocalizations.of(context).modalBarrierDismissLabel,
      barrierColor: Colors.black,
      transitionDuration: const Duration(milliseconds: 200),
    );
}

但是这个对话框占用了整个空间,而不是我使用的width200.0 height。我尝试包装ContainerScaffold但是然后barrierDismissible似乎barrierColor不起作用。我也改变了他们的价值观,但没有运气。

标签: dartflutter

解决方案


将您的容器包装在 Wrap Widget 中:

void showNow() {
    showGeneralDialog(
      context: context,
      pageBuilder: (BuildContext buildContext, Animation<double> animation,
          Animation<double> secondaryAnimation) {
        return Wrap(
          children: <Widget>[
            Container(
              width: 200.0,
              height: 200.0,
              color: Colors.orange,
            ),
          ],
        );
      },
      barrierDismissible: true,
      barrierLabel: MaterialLocalizations.of(context).modalBarrierDismissLabel,
      barrierColor: Colors.black,
      transitionDuration: const Duration(milliseconds: 200),
    );
  }

推荐阅读