Flutter 颤振省道,显示带有回路的下拉按钮选项

Flutter 颤振省道,显示带有回路的下拉按钮选项,flutter,dart,Flutter,Dart,我正在开发一个颤振应用程序,我希望有一个下拉按钮,以0.25的增量显示数字1-99。到目前为止,我都是手工写出来的,但是有没有办法创建一个循环来实现这一点呢?这是我的密码: DropdownButton<String>( items: [ DropdownMenuItem( value: "1", child: Text("1"), ),

我正在开发一个颤振应用程序,我希望有一个下拉按钮,以0.25的增量显示数字1-99。到目前为止,我都是手工写出来的,但是有没有办法创建一个循环来实现这一点呢?这是我的密码:

DropdownButton<String>(
          items: [
            DropdownMenuItem(
              value: "1",
              child: Text("1"),
            ),
            DropdownMenuItem(
              value: "1.25",
              child: Text("1.25"),
            ),
            DropdownMenuItem(
              value: "1.5",
              child: Text("1.5"),
            ),
            DropdownMenuItem(
              value: "1.75",
              child: Text("1.75"),
            ),
          DropdownMenuItem(
              value: "2",
              child: Text("2"),
            ),
          DropdownMenuItem(
              value: "2.25",
              child: Text("2.25"),
            ),
          DropdownMenuItem(
              value: "2.5",
              child: Text("2.5"),
          ),
          DropdownMenuItem(
            value: "2.75",
            child: Text("2.75"),
          ),
          DropdownMenuItem(
            value: "3",
            child: Text("3"),
          ),
          DropdownMenuItem(
            value: "3.25",
            child: Text("3.25"),
          ),
          DropdownMenuItem(
            value: "3.5",
            child: Text("3.5"),
          ),
          DropdownMenuItem(
            value: "3.75",
            child: Text("3.75"),
          ),
          DropdownMenuItem(
            value: "4",
            child: Text("4"),
          ),
          DropdownMenuItem(
            value: "4.25",
            child: Text("4.25"),
          ),
          DropdownMenuItem(
            value: "4.5",
            child: Text("4.5"),
          ),
          DropdownMenuItem(
            value: "4.75",
            child: Text("4.75"),
          ),
          DropdownMenuItem(
            value: "5",
            child: Text("5"),
          ),
          ],
          onChanged: (value) {
            setState(() {
              _value2 = value;
            });
          },
          //new code
          hint: Text("#"),
          value: _value2,
        ),
下拉按钮(
项目:[
下拉菜单项(
值:“1”,
子项:文本(“1”),
),
下拉菜单项(
值:“1.25”,
子项:文本(“1.25”),
),
下拉菜单项(
值:“1.5”,
子项:文本(“1.5”),
),
下拉菜单项(
值:“1.75”,
子项:文本(“1.75”),
),
下拉菜单项(
值:“2”,
子项:文本(“2”),
),
下拉菜单项(
值:“2.25”,
儿童:文本(“2.25”),
),
下拉菜单项(
值:“2.5”,
子项:文本(“2.5”),
),
下拉菜单项(
值:“2.75”,
儿童:文本(“2.75”),
),
下拉菜单项(
值:“3”,
儿童:文本(“3”),
),
下拉菜单项(
值:“3.25”,
儿童:文本(“3.25”),
),
下拉菜单项(
值:“3.5”,
子项:文本(“3.5”),
),
下拉菜单项(
值:“3.75”,
儿童:文本(“3.75”),
),
下拉菜单项(
值:“4”,
儿童:文本(“4”),
),
下拉菜单项(
值:“4.25”,
儿童:文本(“4.25”),
),
下拉菜单项(
值:“4.5”,
子项:文本(“4.5”),
),
下拉菜单项(
值:“4.75”,
儿童:文本(“4.75”),
),
下拉菜单项(
值:“5”,
儿童:文本(“5”),
),
],
一旦更改:(值){
设置状态(){
_value2=值;
});
},
//新代码
提示:文本(“#”)中,
值:_值2,
),
我理解循环,但不知道如何做到这一点


谢谢你的帮助

您可以使用List.generate生成值列表,然后将其映射到下拉菜单项列表中:

List<String> doubleList = List<String>.generate(393, (int index) => '${index * .25 + 1}');
List<DropdownMenuItem> menuItemList = doubleList.map((val) => DropdownMenuItem(value: val, child: Text(val))).toList();
List doubleList=List.generate(393,(int-index)=>“${index*.25+1}”);
List menuItemList=doubleList.map((val)=>DropdownMenuItem(值:val,子项:Text(val)).toList();
编辑:这是为我工作的完整小部件

class DropdownList extends StatefulWidget {


 @override
  _DropdownListState createState() => _DropdownListState();
}

class _DropdownListState extends State<DropdownList> {
  String selected;

  @override
  Widget build(BuildContext context) {
    List<String> doubleList =
        List<String>.generate(393, (int index) => '${index * .25 + 1}');
    List<DropdownMenuItem> menuItemList = doubleList
        .map((val) => DropdownMenuItem(value: val, child: Text(val)))
        .toList();

    return DropdownButton(
      value: selected,
      onChanged: (val) => setState(() => selected = val),
      items: menuItemList,
    );
  }
}
class DropdownList扩展了StatefulWidget{
@凌驾
_DropdownListState createState()=>\u DropdownListState();
}
类_DropdownListState扩展状态{
选择字符串;
@凌驾
小部件构建(构建上下文){
双重名单=
生成(393,(int-index)=>'${index*.25+1}');
列表菜单项列表=双重列表
.map((val)=>DropdownMenuItem(值:val,子项:文本(val)))
.toList();
返回下拉按钮(
值:选中,
一旦更改:(val)=>setState(()=>selected=val),
项目:菜单项列表,
);
}
}

这适用于循环下拉列表

String _dropDownValueInch;


            DropdownButton(             underline: SizedBox(),
                                        hint: _dropDownValueInch == null
                                            ? Text(
                                                '0',
                                                textAlign: TextAlign.center,
                                              )
                                            : Text(
                                                _dropDownValueInch,
                                                style: TextStyle(
                                                    color: Colors.black),
                                              ),
                                        // isExpanded: true,
                                        iconSize: 30.0,
                                        style: TextStyle(color: Colors.black),
                                        items: List<String>.generate(100,
                                            (int index) => '${index + 1}').map(
                                          (val) {
                                            return DropdownMenuItem<String>(
                                              value: val,
                                              child: Text(val),
                                            );
                                          },
                                        ).toList(),
                                        onChanged: (val) {
                                          setState(
                                            () {
                                              _dropDownValueInch = val;
                                            },
                                          );
                                        },
                                      ),
                                      Text("select a number"),
String\u下拉值英寸;
下拉按钮(下划线:SizedBox(),
提示:_dropDownValueInch==null
?文本(
'0',
textAlign:textAlign.center,
)
:文本(
_下降值英寸,
样式:TextStyle(
颜色:颜色。黑色),
),
//是的,
iconSize:30.0,
样式:TextStyle(颜色:Colors.black),
项目:列表。生成(100,
(int-index)=>'${index+1}').map(
(瓦尔){
返回下拉菜单项(
值:val,
子项:文本(val),
);
},
).toList(),
一旦更改:(val){
设定状态(
() {
_dropDownValueInch=val;
},
);
},
),
文本(“选择一个数字”),

谢谢@Kris!我现在得到以下错误:错误:一个等式表达式不能是另一个等式表达式的操作数。尝试重新编写表达式。List doubleList=List.generate(393,(int-index)=>index*.25+1);^lib/PictureScreen.dart:65:24:错误:找不到Getter:“doubleList”。List doubleList=List.generate(393,(int-index)=>index*.25+1)我正在处理它,但我想我会发布,如果你知道如何修复它,请让我知道。谢谢我发布的第一个版本