如何限制 AlertDialog 的高度

And*_*sky 7 flutter

我显示里面有列表的对话框。

    showDialog(
        context: context,
        builder: (context) {
          return AlertDialog(
            title: Text(select_conference),
            content: ListView.separated(
              itemCount: selected.length,
              separatorBuilder: (context, index) => CommonDivider(),
              itemBuilder: (context, index) => ListTile(...),
            ),
          );
        });
Run Code Online (Sandbox Code Playgroud)

但是无论有多少元素 - 对话框都会填充所有可用高度。有没有办法在不计算列表元素高度的情况下解决这个问题?

And*_*eev 21

用 a 包裹您的内容Column并设置mainAxisSizeMainAxisSize.min

AlertDialog(
  content: Column(
    mainAxisSize: MainAxisSize.min,
    children: <Widget>[
      //your content
    ],
  ),
Run Code Online (Sandbox Code Playgroud)


Rém*_*let 8

你可以把它包裹在一个SizedBoxConstrainedBox

ConstrainedBox(
  constraints: BoxConstraints(maxHeight: 100.0),
  child: AlertDialog(
    ...
  ),
);
Run Code Online (Sandbox Code Playgroud)

或者,您可以设置shrinkWraptruein 您的,ListView以便占用最少的垂直空间。

ListView(
  shrinkWrap: true,
  ...
)
Run Code Online (Sandbox Code Playgroud)

  • `ConstrainedBox(约束:BoxConstraints(maxHeight:100.0),孩子:`对我不起作用。谢谢 (2认同)