我如何在颤振中使用for循环替换CARD

时间:2020-11-03 15:56:11

标签: sqlite flutter dart card

我想将卡替换为for循环。这是我要显示输出的屏幕的主体

body: FutureBuilder<List>
       (
         future: db.getAllRecords("EMPLOYEE"),
        initialData: List(),
        builder: (context,snapshot){
          return snapshot.hasData
              ? ListView.builder(
                itemCount: snapshot.data.length,
                itemBuilder: (_, int position){
                 final item =snapshot.data[position];
                 return Card(
                   child:ListTile(
                     title: Text(
                        snapshot.data[position].row[1]
                     ),
                   ),
                 );
                },
          )
             : Center(
                child:CircularProgressIndicator() ,
              );

1 个答案:

答案 0 :(得分:0)

实际上,您编写的方式是Flutter中的标准实现方式。您可以调用默认的ListView构造函数而不是ListView.builder构造函数,然后调用for循环,但这不是最佳实践。

List<Widget> _buildListItems(BuildContext context, List<...> list) {
    final output = List<Widget>();
    for (var item in list) {
        output.add(
            Card(
                child: ListTile(
                    title: Text(item.row[1]),
                ),
            ),
        );
    }
    return output;
}

//... back to your build(context) body

    body: FutureBuilder<List>(
        future: db.getAllRecords("EMPLOYEE"),
        builder: (context, snapshot) {
            return snapshot.hasData
                ? ListView(
                    children: [
                        ..._buildListItems(context, snapshot.data),
                    ],
                )
                : Center(
                    child: CircularProgressIndicator(),
                );
        }
    )