flutter - 添加容器颜色时出错:ParentDataWidget 的使用不正确
问题描述
我正在尝试为我的容器添加背景颜色,然后可能会使用 BoxDecoration() 添加一些边框半径。将 color: Colors.red 添加到容器时,它会被丢弃:
ParentDataWidget 的使用不正确。展开的小部件必须直接放在 Flex 小部件内。
Container(
color: Colors.red,
child: Expanded(
child: ListView.builder(
padding: EdgeInsets.all(0.0),
itemCount: _clients.length,
itemBuilder: (context, index) {
final client = _clients[index];
return Dismissible(
key: Key(client),
direction: DismissDirection.startToEnd,
onDismissed: (direction) {
setState(() {
_clients.removeAt(index);
});
},
background: Container(color: Color(0xff171e24)),
child: _clientListTile(context, client)
);
}
),
),
)
解决方案
此错误说明的是 WidgetExpanded
必须放在Flex widget
. Flex 小部件包括行、列等。考虑您是否希望容器内有多个项目,以及您希望它们是水平的还是垂直的。
一个快速的解决方法是Expanded
用Row
or包裹Column
,但这取决于你想要什么。
这是使用您的代码的示例:
class Test extends StatelessWidget {
final _clients = ["1","2","3","4","5"];
@override
Widget build(BuildContext context) {
return Container(
color: Colors.red,
child: Row( //or column
children: <Widget>[
Expanded(
child: ListView.builder(
padding: EdgeInsets.all(0.0),
itemCount: _clients.length,
itemBuilder: (context, index) {
final client = _clients[index];
return Dismissible(
key: Key(client),
direction: DismissDirection.startToEnd,
onDismissed: (direction) {print(direction);},
background: Container(color: Color(0xff171e24)),
child: Text("Client: " + client)
);
}
),
),
//add another item if you want its a row or column after all :-)
],
)
);
}
}
如果您有任何问题,请告诉我!
编辑
既然您说它嵌套在列中,请尝试使用Expanded()
将其拉伸到Flex Widget
.
此处显示:
class Test extends StatelessWidget {
final _clients = ["1","2","3","4","5"];
@override
Widget build(BuildContext context) {
return Column(
children: <Widget> [
Expanded( //RIGHT HERE
child: Container(
color: Colors.red,
child: Row( //or column
children: <Widget>[
Expanded(
child: ListView.builder(
padding: EdgeInsets.all(0.0),
itemCount: _clients.length,
itemBuilder: (context, index) {
final client = _clients[index];
return Dismissible(
key: Key(client),
direction: DismissDirection.startToEnd,
onDismissed: (direction) {print(direction);},
background: Container(color: Color(0xff171e24)),
child: Text("Client: " + client)
);
},
),
),
//add another item if you want its a row
],
),
),
),
],
);
}
}
推荐阅读
- ruby-on-rails - 无法在 Rails 5 应用程序中添加行以加入表
- css - 重定向的域仅获取 CSS 文件的一部分
- spring - 控制器方法上的自定义注释以拦截请求和验证
- javascript - 带有数字输入和输出的 Javascript 和 html 表单需要的建议
- json - 使用 CSV 数据集配置加载 JSON 数据
- python - Python 3.6 AttributeError:模块“statsmodels”没有属性“compat”
- python - 按列中的值过滤多头数据帧中的行
- python - 错误:使用 pydocumendb 将数据上传到 Cosmosdb
- git - 如何发现已推送的提交被修改然后再次推送?
- sql - SQL删除重复维护最早/最晚日期