flutter - 如何在颤动中从列表视图元素的文本字段传递数据?
问题描述
我想使用 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]);
},
),
],
),
);
});
},
),
但是当我为文本字段定义控制器时,它会反映在列表视图的所有字段上。有什么方法可以在列表的各个文本字段上输入自定义数量并将它们传递到购物车?
解决方案
尝试将整个Row
代码移动到另一个小部件中,并将产品作为该新小部件的输入。
现在,当从您的产品中创建row
传递unique
价值时,将其作为key
.
推荐阅读
- python - Conda 环境:打印已安装软件包的许可证
- python - 如何不打印 cmd 输出?
- javascript - 当我使用画布和 requestAnimationFrame 为图像数组设置动画时的位置问题
- vim - 删除行中的特定字符
- bash - 如何在 shell 脚本中添加进度条
- xaml - 网络图片更新后不显示
- android - 如何使用 FirebaseUi 在 Fragment 中调用 Firestore 数据库?
- reactjs - 从函数访问 Gatsby 组件
- javascript - 如何在 Nodejs 中使用 Async/Await 连接到 MongoDB?
- sql - 向下舍入到 N 的倍数中最接近的值