【发布时间】:2020-11-05 06:55:40
【问题描述】:
我尝试在订单购物车中创建商品列表。但它只显示列表中的第一项....
这是我的代码:
.......
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) {
for (var item in cartItem) {
return new Text('${item.name}');
}
}
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'),
Container(
child: cartList(),
),
],
),
);
},
);
},
child: Text(
'Conferm Order',
textAlign: TextAlign.end,
),
),
我也尝试过使用 listview.builder,但失败了。它给了我一些错误。类似于“断言失败”或“渲染”类型错误。
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');
}
这是我尝试使用 Listiew.builder 时的错误:
触发异常时正在处理以下 RenderObject: RenderIntrinsicWidth#3fbd2 relayoutBoundary=up6 NEEDS-LAYOUT NEEDS-PAINT 需要合成位更新: 创建者:IntrinsicWidth ← 语义 ← DefaultTextStyle ← AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#eb4f8 墨水渲染器] ← 通知监听器← CustomPaint ← _ShapeBorderPaint ← PhysicalShape ← _MaterialInterior ← Material ← 约束框← ⋯ parentData:(可以使用大小) 约束:BoxConstraints(280.0
还有这个:
另一个异常被抛出:断言失败: 文件:~flutter/packages/flutter/lib/src/rendering/mouse_tra cking.dart:392:12
【问题讨论】:
-
ListView.builder是要走的路。return语句退出函数,它们不会神奇地创建多个returns 中的Listour。请与您的ListView.builder分享具体错误。 -
它显示了这个:
Another exception was thrown: Assertion failed: file:/~flutter/packages/flutter/lib/src/rendering/mouse_tra cking.dart:392:12 -
这是一个单独的错误,因此它说“另一个异常”。请显示专门针对
ListView.builder的异常。 -
请删除这些 cmets 并将其发布为问题中的编辑。
-
使用
ListView.builder并关注@HosseinYousefi 的出色回答。
标签: list flutter listview dart flutter-web