无法使用列表创建ListView.builder

时间:2020-07-15 11:53:50

标签: list flutter listview dart

我试图用一个列表构建一个ListView.builder。

它向我显示此错误:不能将参数类型“ CartItem”分配给参数类型“ String”

这是我的代码:

class CartItem {
  String name;
  String quantity;
  String price;

  CartItem({
    this.name,
    this.quantity,
    this.price,
  });
}

List<CartItem> cartItem = [];

var _quantity = TextEditingController();

Widget cartList() {
  if (cartItem.length != 0) {
    return ListView.builder(
      itemCount: cartItem.length,
      itemBuilder: (context, index) {
        return Text(cartItem[index]);
      },
    );
  }
  return Text('Nothing in Cart');
}

这是我的小部件方法的实现:

RaisedButton(
                    elevation: 1,
                    color: Colors.blueGrey,
                    onPressed: () {
                      showDialog(
                        context: context,
                        builder: (BuildContext contex) {
                          return AlertDialog(
                            content: Column(
                              children: [
                                Text('Your Order List'),
                                Expanded(
                                  child: cartList(),
                                )
                              ],
                            ),
                          );
                        },
                      );
                    },
                    child: Text(
                      'Conferm Order',
                      textAlign: TextAlign.end,
                    ),
                  ),

enter image description here

1 个答案:

答案 0 :(得分:2)

Text小部件需要String作为参数,而cartItem[index]返回了CartItem的实例,这就是为什么会出现错误

您应该使用

return Text(cartItem[index].name);

代替此

return Text(cartItem[index]);

示例代码

Widget cartList() {
  if (cartItem.length != 0) {
    return ListView.builder(
      itemCount: cartItem.length,
      itemBuilder: (context, index) {
        return Text(cartItem[index].name);
      },
    );
  }
  return Text('Nothing in Cart');
}