使用 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 屏幕,除了导航栏、状态栏和调试标签之外的所有内容都用白色填充。 (你可以看到的SafeArea
comes from here)
做同样的事情,但用 Padding
包围它并应用 padding
将作为尺寸调整。应用填充将删除 Container
侧面的部分。这是我想出的唯一成功的方法。例如。 SizedBox
或 ConstrainedBox
没有区别。
两者CupertinoAlertDialog
和 Material AlertDialog
可以作为小部件插入到 showDialog
的 builder
中,并且不会填满整个屏幕。
我试图弄清楚这两个小部件的作用与我不同,但在我看来它们是 also using Container
sizing或 ConstrainedBox
as sizing ,两者都不对我有用。
最佳答案
问题是:尺寸本身不足以提供在屏幕上实际呈现的信息。
Flutter 需要一种方法来知道如何在屏幕内对齐 10x10 的框。
Center
应该可以解决问题:
showDialog(
builder: (context) {
return Center(
child: Container(),
)
}
)
AlertDialog
和类似的东西隐含地为你做同样的事情。
https://stackoverflow.com/questions/51143563/