android - 在颤动中填充列时出现屏幕溢出
问题描述
我知道在这种情况下我们可以使用ListView
orExpanded
代替列,但是当我使用 ListView 而不是 Column 时,下面的代码会出现运行时异常。聚焦输入后打开键盘时,列中的 TextFields 溢出。
class _AddAchievementDialog extends State<AddAchievementDialog> {
String title, description, longDescription, linksString, id;
List<String> links;
@override
Widget build(BuildContext context) {
return AlertDialog(
title: Text(
"Add",
textAlign: TextAlign.center,
),
shape: RoundedRectangleBorder(),
contentPadding: EdgeInsets.all(10),
content: Container(
padding: EdgeInsets.all(10),
height: 350,
child: Column(
children: <Widget>[
TextField(
decoration: InputDecoration(labelText: 'Title'),
),
TextField(
keyboardType: TextInputType.multiline,
maxLines: 2,
decoration: InputDecoration(labelText: 'Description'),
),
TextField(
keyboardType: TextInputType.multiline,
maxLines: 3,
decoration: InputDecoration(labelText: 'Long Description'),
),
TextField(
decoration:
InputDecoration(labelText: 'Links (seperated by comma) '),
),
],
),
),
actions: <Widget>[
RaisedButton(
child: Text("Submit"),
)
],
);
}
}
解决方案
您必须将 Column-Widget 包装在 aScrollView- Widget 中并调整一些标志位。
ListView(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
children: <Widget>[
Text();
]
);
通过这些设置,您可以防止您的 Widget 显示溢出错误;此外,使用物理设置,您可以防止列表视图在列表视图中显示 overscroll-ui。
推荐阅读
- html - 填充和颜色不适用于身体类
- c# - 尝试在我的控制器 c# mvc 中返回 File() 时获取 null
- c# - 如何在不知道确切泛型的情况下使用 AddTransient
- javascript - 在 FireStore 中过滤集合组查询
- azure - velero 的默认快照位置
- node.js - Mongoose $pull 不通过 ObjectId 删除嵌入的子文档
- javascript - python selenium webdriver 扩展手风琴容器(取两个)
- raspberry-pi - 是否有适用于 Raspberry Pi 的 MSR605X 库?
- sapui5 - 我可以根据屏幕宽度自动折叠 OpenUI5 侧边导航吗?
- php - 用特定元素值替换数组