我显示里面有列表的对话框。
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并设置mainAxisSize为MainAxisSize.min:
AlertDialog(
content: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
//your content
],
),
Run Code Online (Sandbox Code Playgroud)
你可以把它包裹在一个SizedBox或ConstrainedBox
ConstrainedBox(
constraints: BoxConstraints(maxHeight: 100.0),
child: AlertDialog(
...
),
);
Run Code Online (Sandbox Code Playgroud)
或者,您可以设置shrinkWrap为truein 您的,ListView以便占用最少的垂直空间。
ListView(
shrinkWrap: true,
...
)
Run Code Online (Sandbox Code Playgroud)