代码之家  ›  专栏  ›  技术社区  ›  Andrii Turkovskyi

如何约束对话框的高度

  •  1
  • Andrii Turkovskyi  · 技术社区  · 7 年前

    我显示的对话框中有列表。

        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(...),
                ),
              );
            });
    

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

    1 回复  |  直到 7 年前
        1
  •  6
  •   minato    6 年前

    你可以把它包在盒子里 SizedBox ConstrainedBox

    ConstrainedBox(
      constraints: BoxConstraints(maxHeight: 100.0),
      child: AlertDialog(
        ...
      ),
    );
    

    或者,您可以设置 shrinkWrap true 在你的 ListView 所以它需要最少的垂直空间。

    ListView(
      shrinkWrap: true,
      ...
    )
    
        2
  •  19
  •   Andrey Gordeev    6 年前

    用一个 Column mainAxisSize MainAxisSize.min

    AlertDialog(
      content: Column(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          //your content
        ],
      ),
    
        3
  •  0
  •   Lee Mordell    5 年前

    A Dialog insetPadding

        showDialog(
            context: context,
            builder: (context) {
              return AlertDialog(
                insetPadding: EdgeInsets.symmetric(
                  horizontal: 50.0,
                  vertical: 100.0,
                ),
                title: Text('...'),
                content: Text('...'),
              );
            });