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]--;)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...