Flutter 向listview颤振添加卡

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

我想为每个ListTile添加卡片小部件。我应该在哪里插入它。 下面是我全部代码的一个片段

 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: () {},
                ),
         ),
           
          ],
        )