Android 颤振:AlterDialog中的Listview不可滚动
我需要一个Android 颤振:AlterDialog中的Listview不可滚动,android,flutter,flutter-alertdialog,Android,Flutter,Flutter Alertdialog,我需要一个AlertDialog和minHeight的50。它包含一个列表视图。如果列表视图超出屏幕范围,则它应成为可滚动的。但由于某些原因,我无法滚动。谁能向我解释一下为什么它不起作用:) 警报对话框( 形状:RoundedRectangleBorder(borderRadius:borderRadius.circular(10)), 标题:, 内容:约束框( 约束:新的BoxConstraints( 身高:50, ), 子:列( 儿童:[ 第(…)行, 容器( 子项:ListView.bui
AlertDialog
和minHeight
的50
。它包含一个列表视图
。如果列表视图
超出屏幕范围,则它应成为可滚动的。但由于某些原因,我无法滚动。谁能向我解释一下为什么它不起作用:)
警报对话框(
形状:RoundedRectangleBorder(borderRadius:borderRadius.circular(10)),
标题:,
内容:约束框(
约束:新的BoxConstraints(
身高:50,
),
子:列(
儿童:[
第(…)行,
容器(
子项:ListView.builder(
收缩膜:对,
itemCount:list.length,
itemBuilder:(上下文,索引){
返回手势检测器(
onTap:()=>\u onTap(列表[索引]),
孩子:排(
儿童:[
灵活的(
弹性:1,
子项:复选框(…),
),
灵活的(
弹性:3,
子项:文本(列表[索引],)
],
)
);
},
)
)
],
),
),
行动:[
材料按钮(
最小宽度:100,
子项:文本('Cancel'),
已按下:(){
Navigator.of(context.pop();
}
),
材料按钮(
最小宽度:100,
标高:5.0,
颜色:主题。背景。强调颜色,
子项:文本('保存',样式:文本样式(颜色:颜色(0xFFF6F5F5)),
已按下:(){
}
)
],
);
将mainAxisSize:mainAxisSize.min添加到列中。如果没有它,您的列将处于无限高并包含所有Listview项。这就是为什么它不会滚动。奇怪。我刚刚测试了一个类似的代码(当然比你的代码简单),没有问题。代码的其他部分可能会导致问题。是的,问题可能发生在其他地方。我将在周末进行测试。
AlertDialog(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
title: ... ,
content: ConstrainedBox(
constraints: new BoxConstraints(
minHeight: 50,
),
child: Column(
children: <Widget>[
Row(...),
Container(
child: ListView.builder(
shrinkWrap: true,
itemCount: list.length,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () => _onTap(list[index]),
child: Row(
children: <Widget>[
Flexible(
flex: 1,
child: Checkbox(...),
),
Flexible(
flex: 3,
child: Text(list[index]),)
],
)
);
},
)
)
],
),
),
actions: <Widget>[
MaterialButton(
minWidth:100,
child: Text('Cancel'),
onPressed: (){
Navigator.of(context).pop();
}
),
MaterialButton(
minWidth:100,
elevation: 5.0,
color: Theme.of(context).accentColor,
child: Text('Save', style: TextStyle(color: Color(0xFFF6F5F5))),
onPressed: (){
}
)
],
);