如何调整ShowDialog的子级

时间:2018-07-02 20:51:29

标签: dart flutter

使用showDialog(...builder: ...),我 无法 确定SomeWidget 内容的大小。

发生了什么

无论我尝试插入builder的哪些小部件,我都无法控制调整大小

showDialog(context: context, builder: (context) => Container(
  color: Colors.white,
  width: 10.0,
  height: 10.0,
));

无论我在widthheight中插入哪个值,对话框始终显示全屏 。在这种情况下,Container将占用所有可用空间 。我上面发布的代码将导致以下结果:

Full size screenshot显示一个Android屏幕,其中导航栏,状态栏和调试标签以外的所有内容都用白色填充。 ((您可以看到comes from hereSafeArea

填充

做同样的事情,但是用Padding包围并应用padding调整大小。应用填充将从Container的一侧删除部分。这是我想出的唯一成功的方法。例如。 SizedBoxConstrainedBox没有什么不同。

我想看到的东西

CupertinoAlertDialogMaterial AlertDialog都可以作为小部件插入builder的{​​{1}}中,并且不会填满 < / strong> 整个屏幕

我试图弄清楚这两个窗口小部件的功能与我不同,但是在我看来,它们是also using Container sizingConstrainedBox as sizing两者都做了不是为我工作。

1 个答案:

答案 0 :(得分:7)

问题是:大小本身不足以在屏幕上实际呈现信息。

Flutter需要某种方法来知道如何在屏幕内对齐该10x10框。 Center应该可以解决问题:

showDialog(
  builder: (context) {
    return Center(
      child: Container(),
    )
  }
)

AlerDialog和类似的内容暗中为您做同样的事情。