无法使用列表创建 ListView.builder
Posted
技术标签:
【中文标题】无法使用列表创建 ListView.builder【英文标题】:Can't create ListView.builder with a list 【发布时间】:2020-11-04 21:56:57 【问题描述】:我尝试使用 List 构建 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,
),
),
【问题讨论】:
【参考方案1】: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');
【讨论】:
您的答案是正确的,但我发现我的小部件方法存在另一个问题。它告诉我一个错误:Another exception was thrown: Assertion failed: file:~/flutter/packages/flutter/lib/src/rendering/mouse_tra cking.dart:392:12
@SantoShakil 尝试重启你的应用
它不起作用。我认为这是另一个问题。但你的回答对于我对这篇文章的问题是正确的。非常感谢。以上是关于无法使用列表创建 ListView.builder的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 文本编辑控制器 listview.builder
颤动 listView.Builder 隐藏最后一个列表项的分隔符