Flutter 向listview颤振添加卡
我想为每个ListTile添加卡片小部件。我应该在哪里插入它。 下面是我全部代码的一个片段Flutter 向listview颤振添加卡,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我想为每个ListTile添加卡片小部件。我应该在哪里插入它。 下面是我全部代码的一个片段 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), centerTitle: true, ), body: StreamBuilder<List>( strea
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
centerTitle: true,
),
body: StreamBuilder<List>(
stream: _streamController.stream,
builder:
(BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData)
return ListView(
children: [
for (Map document in snapshot.data)
ListTile(
contentPadding:
EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
leading: Container(
padding: EdgeInsets.only(right: 12.0),
decoration: new BoxDecoration(
border: new Border(
right: new BorderSide(width: 1.0, color: Colors.cyan))),
child: Icon(Icons.notifications, color: Colors.cyan),
),
title: Text("Announcement"
),
subtitle: (document['type']=="Announcement")?Text("Management posted new announcement."):Text('None'),
trailing:
Icon(Icons.keyboard_arrow_right, color: Colors.cyan, size: 30.0),
onTap: () {
},
),
],
);
return new CircularProgressIndicator();
},
),
);
}
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(widget.title),
标题:对,
),
正文:StreamBuilder(
流:_streamController.stream,
建设者:
(BuildContext上下文,异步快照){
if(snapshot.hasData)
返回列表视图(
儿童:[
for(snapshot.data中的映射文档)
列表砖(
内容填充:
边缘组。对称(水平:20.0,垂直:10.0),
领先:集装箱(
填充:仅限边缘设置(右侧:12.0),
装饰:新盒子装饰(
边界:新边界(
右:新边框(宽度:1.0,颜色:Colors.cyan)),
子项:图标(Icons.notification,color:Colors.cyan),
),
标题:文本(“公告”
),
副标题:(文档['type']==“公告”)?文本(“管理层发布了新公告”):文本(“无”),
尾随:
图标(Icons.keyboard\u arrow\u right,颜色:Colors.cyan,大小:30.0),
onTap:(){
},
),
],
);
返回新的循环ProgressIndicator();
},
),
);
}
我想为布局添加卡片小部件。请帮忙。
任何答案都将不胜感激,提前感谢 基本上,任何小部件都可以是卡片,但是根据您的要求,“标题”或“副标题”都可以是卡片。我编辑了你们的代码,并在字幕中添加了卡片,结果如下
将
listile
包装在Card
小部件中,如下所示:
ListView(
children: [
for (Map document in snapshot.data)
Card(
child: ListTile(
contentPadding:
EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
leading: Container(
padding: EdgeInsets.only(right: 12.0),
decoration: new BoxDecoration(
border: new Border(
right: new BorderSide(width: 1.0, color: Colors.cyan))),
child: Icon(Icons.notifications, color: Colors.cyan),
),
title: Text("Announcement"),
subtitle: (document['type']=="Announcement")?Text("Managementposted
new announcement."):Text('None'),
trailing:
Icon(Icons.keyboard_arrow_right, color: Colors.cyan, size: 30.0),
onTap: () {},
),
),
],
)
你是说整个
列表视图
应该在卡
小部件中吗?@R.Shpd每个列表块
都应该在卡
小部件中
ListView(
children: [
for (Map document in snapshot.data)
Card(
child: ListTile(
contentPadding:
EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
leading: Container(
padding: EdgeInsets.only(right: 12.0),
decoration: new BoxDecoration(
border: new Border(
right: new BorderSide(width: 1.0, color: Colors.cyan))),
child: Icon(Icons.notifications, color: Colors.cyan),
),
title: Text("Announcement"),
subtitle: (document['type']=="Announcement")?Text("Managementposted
new announcement."):Text('None'),
trailing:
Icon(Icons.keyboard_arrow_right, color: Colors.cyan, size: 30.0),
onTap: () {},
),
),
],
)