Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 使用列表在购物车中创建项目列表(Flatter Web)_List_Flutter_Listview_Dart_Flutter Web - Fatal编程技术网

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的优秀答案。你太棒了!它很有效!非常感谢你,伙计。