dart - 如何调整 ShowDialog 子项的大小
问题描述
使用showDialog(...builder: ...)
,我无法调整SomeWidget
.
怎么了
无论我尝试插入什么小部件,builder
我都无法控制大小。
showDialog(context: context, builder: (context) => Container(
color: Colors.white,
width: 10.0,
height: 10.0,
));
无论我在width
和中插入哪些值height
,对话框总是全屏显示。在Container
这种情况下将占用所有可用空间。我在上面发布的代码将导致以下结果:
显示 Android 屏幕的全尺寸屏幕截图,其中除了导航栏、状态栏和调试标签之外的所有内容都用白色填充。(SafeArea
你可以看到来自这里)
填充
做同样的事情,但用 aPadding
和 apply将其包围起来padding
将起到 sizing的作用。应用填充将从Container
. 这是我想出的唯一成功的方法。例如SizedBox
或ConstrainedBox
不有所作为。
我想看到什么
CupertinoAlertDialog
和MaterialAlertDialog
都可以作为小部件插入到builder
of 中showDialog
,并且不会填满整个屏幕。
我试图弄清楚这两个小部件的作用与我不同,但对我来说,它们似乎也在使用Container
sizing或ConstrainedBox
as sizing,这两种方法都不适合我。
解决方案
问题是:尺寸本身不足以在屏幕上实际呈现它。
Flutter 需要一种方法来知道如何在屏幕内对齐 10x10 的框。
ACenter
应该做的伎俩:
showDialog(
builder: (context) {
return Center(
child: Container(),
)
}
)
AlertDialog
和类似的隐含地为你做同样的事情。
推荐阅读
- javascript - 如何加载 IP 范围列表以将其与 $allowedIps 脚本一起使用?
- javascript - 使用嵌套对象循环数组
- html - 具有透明背景的材料主题轮廓选择
- javascript - html 输入后更改/替换字符串
- python - 使用柯南构建多个库并打包它们以在没有柯南的情况下使用
- php - 将未选择的列表框值从 html 回显到 php
- python - 我想从列表中单独输出
- python - 从抓取的数据中剥离数字并将其存储在单独的变量中
- azure - 使用 powershell 下载 Site-to-Site VPN 配置文件
- python - 根据另一个 Pandas 数据框中的重叠范围和相同范围的总和值从 2 列映射范围