我试图在订单购物车中创建一个项目列表。但它只显示列表中的第一项....
这是我的代码:
…………
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 NEEDS-COMPOSITING-BITS-UPDATE: creator: IntrinsicWidth ← Semantics ← DefaultTextStyle ← AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#eb4f8 ink renderer ] ← NotificationListener ← CustomPaint ← _ShapeBorderPaint ← PhysicalShape ← _MaterialInterior ← Material ← ConstrainedBox ← ⋯ parentData: (可以使用大小) 约束: BoxConstraints(280.0<=w<=711.0, 0.0<=h<=343.0) size: MISSING stepWidth: null stepHeight: null 此 RenderObject 具有以下后代(显示深度为 5): child: RenderFlex#22eec NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE child 1: RenderPadding#42cc4 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING -BITS-UPDATE 孩子:RenderFlex#09e2b 需要 - 布局需要 - 绘制需要 - 合成 - 位更新子 1:RenderParagraph#afac8 需要 - 布局需要 - 绘制文本:TextSpan 子 2:RenderRepaintBoundary#14459 需要 - 布局需要 - 绘制需要 - 合成 - 位更新孩子:RenderCustomPaint#ddfde 需要-布局需要-油漆需要-合成-位-更新
和这个:
抛出了另一个异常:断言失败:file:~flutter/packages/flutter/lib/src/rendering/mouse_tra cking.dart:392:12