首页 > 解决方案 > 如何在颤动中从列表视图元素的文本字段传递数据?

问题描述

我想使用 listtile 中的文本字段从 listview 传递数量。

        padding: EdgeInsets.all(8.0),
        itemCount: allProducts.length,
        itemBuilder: (context, index) {
          return Consumer<CartModel>(builder: (context, cart, child) {
            return Card(
              color: Colors.white,
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: <Widget>[
                  Padding(
                    padding: const EdgeInsets.only(left: 20),
                    child: Text(
                      allProducts[index].title,
                      style: TextStyle(fontWeight: FontWeight.bold),
                    ),
                  ),
                  Container(
                    width: 30,
                    child: TextField(
                      controller: TextEditingController(),
                      decoration: InputDecoration(
                        hintText: 'Quantity'
                      ),
                    ),
                  ),
                  // Text("\$" + allProducts[index].price.toString()),
                  RaisedButton(
                    color: Colors.blue[200],
                    child: Text('Add'),
                    onPressed: () {
                      cart.addProduct(allProducts[index]);
                    },
                  ),
                ],
              ),
            );
          });
        },
      ),

但是当我为文本字段定义控制器时,它会反映在列表视图的所有字段上。有什么方法可以在列表的各个文本字段上输入自定义数量并将它们传递到购物车?

标签: flutterdart

解决方案


尝试将整个Row代码移动到另一个小部件中,并将产品作为该新小部件的输入。

现在,当从您的产品中创建row传递unique价值时,将其作为key.


推荐阅读