微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter-为列表中的每个项目动态创建多个变量

如何解决Flutter-为列表中的每个项目动态创建多个变量

你好,我有一个简单的表单,基本上它将显示文章名称及其下的所有服务,并且在同一行中将有+和-按钮将增加变量,但是这里的问题是我没有我不知道确切会有多少服务,因为将在应用程序的其他部分创建并链接服务,但是我可以使用ListName.length

获取列表的长度。

这是示例代码

      int quantity = 0;
              Column(
                    children: <Widget>[
                      articleName(article),Column(
                        children: List.generate(price.length,(index) =>
                          Row(
                            mainAxisAlignment: MainAxisAlignment.spaceBetween,children: <Widget>[
                                Container(
                                  padding: EdgeInsets.all(10),child: Text(
                                    translator.currentLanguage == 'ar' ?
                                    '${price[index].serviceNameAr}'
                                        :'${price[index].serviceNameEn}',style: TextStyle(
                                      fontSize: responsivenessController.font,),Text('${price[index].price}',style: TextStyle(
                                    fontSize: responsivenessController.bodyFont,FloatingActionButton(
                                onpressed: (){
                                  setState(() {
                                    quantity = quantity + 1;
                                  });
                                },child:  Icon(Icons.add,color: Colors.black,backgroundColor: Colors.white,Text('$quantity',style:  TextStyle(fontSize: responsivenessController.font)),FloatingActionButton(
                                onpressed: (){
                                  setState(() {
                                    quantity = quantity - 1;
                                  });
                                },child: Icon(Icons.remove,],)
                        ),)

例如,如果您单击了第三项服务上的“添加”按钮,您将看到所有其他服务将具有相同的数量,因为它们共享相同的变量

我想要的是用户提交我想要的表单时

  1. 商品ID->存在于先前的代码
  2. 服务ID->存在
  3. 数量->导致问题的原因
  4. 价格->取决于数量

请与我分享您的想法,如果遇到此类问题您会怎么做

解决方法

您需要一个清单来保留您的数量。列表类似于其他编程语言中的数组。
尝试这样的事情:

List<int> quantities = [];
// initializing the list with the lenth provided
for(int i = 0; i<price.length; i++){
  quantities.add(0);
}

并在setState中以这种方式使用列表:

quantities[index] = quantities[index] + 1 (or quantities[index]++;)
quantities[index] = quantities[index] - 1 (or quantities[index]--;)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?