dart - 如何调整 ShowDialog 子项的大小

使用 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 屏幕,除了导航栏、状态栏和调试标签之外的所有内容都用白色填充。 (你可以看到的SafeArea comes from here)

填充

做同样的事情,但用 Padding 包围它并应用 padding作为尺寸调整。应用填充将删除 Container 侧面的部分。这是我想出的唯一成功的方法。例如。 SizedBoxConstrainedBox 没有区别。

我想看什么

两者CupertinoAlertDialog和 Material AlertDialog可以作为小部件插入到 showDialogbuilder 中,并且不会填满整个屏幕

我试图弄清楚这两个小部件的作用与我不同,但在我看来它们是 also using Container sizing或 ConstrainedBox as sizing ,两者对我有用。

最佳答案

问题是:尺寸本身不足以提供在屏幕上实际呈现的信息。

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

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

AlertDialog 和类似的东西隐含地为你做同样的事情。

https://stackoverflow.com/questions/51143563/

相关文章:

flutter - floatingactionbutton 在不同的选项卡上显示/隐藏

flutter - Flutter中的水平列表列表

dictionary - 不断向 map 添加数据

image - 如何在 Flutter 中裁剪图像?

dart - 如何使TextField的背景为矩形框形状?

flutter - Flutter中如何返回刷新上一页?

dart - 小部件内的 flutter 循环

flutter - Flutter 中 MaterialApp 类中的构建器属性的示例?

flutter - 在 mac 和 windows 之间共享解决方案时对包的路径文件引用不正确

flutter - 如何防止 AlertDialog 不通过点击外部关闭?