使用showDialog(...builder: ...)
,我 无法 确定SomeWidget
内容的大小。
无论我尝试插入builder
的哪些小部件,我都无法控制调整大小。
showDialog(context: context, builder: (context) => Container(
color: Colors.white,
width: 10.0,
height: 10.0,
));
无论我在width
和height
中插入哪个值,对话框始终显示全屏 。在这种情况下,Container
将占用所有可用空间 。我上面发布的代码将导致以下结果:
Full size screenshot显示一个Android屏幕,其中导航栏,状态栏和调试标签以外的所有内容都用白色填充。 ((您可以看到comes from here的SafeArea
)
做同样的事情,但是用Padding
包围并应用padding
将调整大小。应用填充将从Container
的一侧删除部分。这是我想出的唯一成功的方法。例如。 SizedBox
或ConstrainedBox
没有什么不同。
CupertinoAlertDialog
和Material AlertDialog
都可以作为小部件插入builder
的{{1}}中,并且不会填满 < / strong> 整个屏幕。
我试图弄清楚这两个窗口小部件的功能与我不同,但是在我看来,它们是also using Container
sizing或ConstrainedBox
as sizing,两者都做了不是为我工作。
答案 0 :(得分:7)
问题是:大小本身不足以在屏幕上实际呈现信息。
Flutter需要某种方法来知道如何在屏幕内对齐该10x10框。 Center
应该可以解决问题:
showDialog(
builder: (context) {
return Center(
child: Container(),
)
}
)
AlerDialog
和类似的内容暗中为您做同样的事情。