List 使用列表在购物车中创建项目列表(Flatter Web)
我尝试在订单购物车中创建项目列表。但它只显示列表中的第一项 这是我的密码:List 使用列表在购物车中创建项目列表(Flatter Web),list,flutter,listview,dart,flutter-web,List,Flutter,Listview,Dart,Flutter Web,我尝试在订单购物车中创建项目列表。但它只显示列表中的第一项 这是我的密码: class CartItem { String name; String quantity; String price; CartItem({ this.name, this.quantity, this.price, }); } List<CartItem> cartItem = []; var _quantity = TextEditingControl
class CartItem {
String name;
String quantity;
String price;
CartItem({
this.name,
this.quantity,
this.price,
});
}
List<CartItem> cartItem = [];
var _quantity = TextEditingController();
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,
),
),
class CartItem {
String name;
String quantity;
String price;
CartItem({
this.name,
this.quantity,
this.price,
});
}
List<CartItem> cartItem = [];
var _quantity = TextEditingController();
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');
}
这是我尝试使用ListView.builder时出现的错误:
引发异常时正在处理以下RenderObject:
RenderIntrinsicWidth#3fbd2 relayoutBoundary=up6需要-布局需要-绘制
需要-合成-比特-更新:
创建者:内部宽度← 语义学← DefaultTextStyle← 动画默认文本样式←
_InkFeatures-[GlobalKey#eb4f8墨水渲染器]←
通知侦听器←
定制油漆← _塑像颜料← 体形← _物质利益← 布料←
约束盒←
⋯
parentData:(可以使用大小)
约束:BoxConstraints(280.0所以首先,在几乎任何编程语言中
返回
的那一刻,您就退出了该函数。因此,您不会得到一个列表,而只会得到一个文本
小部件
关于ListView.builder
,您缺少了.name
(如果您想显示更多类似价格的内容,您必须使用另一个小部件或将它们连接到一个字符串中,因为文本只接受字符串
):
代替文本
小部件,您可以潜在地使用它,它具有许多文本小部件的占位符,这些文本小部件通常对列表有用
现在对于布局错误,最简单的修复方法是为包含cartList的容器添加高度
和宽度
属性:
return AlertDialog(
content: Column(
children: [
Text('Your Order List'),
Container(
height: 300, // or any other number
width: 300, // or any other number
child: cartList(),
),
],
),
);
ListView.builder
是一种方法。return
语句退出函数,它们不会神奇地创建一个多个return
s的列表。请与您的ListView.builder
共享特定错误。它显示:引发了另一个异常:断言失败:file:/~flatter/packages/颤振/lib/src/rendering/mouse_-track.dart:392:12
这是一个单独的错误,因此它会说“另一个异常”。请特别为ListView.builder
显示例外情况。请删除这些评论并将其作为问题的编辑发布。使用ListView.builder
并遵循@HosseinYousefi的优秀答案。你太棒了!它很有效!非常感谢你,伙计。