在我的颤振代码的一部分,我有31个气缸,其中每个有其重量和体积。我想做一种地图来优化代码。以下是代码:
List<int> cilindro1 = [4145, 2100];
List<int> cilindro2 = [4405, 2085];
List<int> cilindro3 = [4140, 2095];
List<int> cilindro4 = [4090, 2086];
List<int> cilindro5 = [4195, 2089];
List<int> cilindro6 = [4120, 2088];
List<int> cilindro7 = [4170, 2075];
List<int> cilindro8 = [4160, 2076];
List<int> cilindro9 = [4100, 2092];
List<int> cilindro10 = [4220, 2079];
List<int> cilindro11 = [4100, 2094];
List<int> cilindro12 = [4225, 2090];
List<int> cilindro13 = [4150, 2100];
List<int> cilindro14 = [4215, 2088];
List<int> cilindro15 = [4100, 2090];
List<int> cilindro16 = [4160, 2089];
List<int> cilindro17 = [4105, 2089];
List<int> cilindro18 = [4265, 2079];
List<int> cilindro19 = [4365, 2076];
List<int> cilindro20 = [4235, 2089];
List<int> cilindro21 = [4155, 2096];
List<int> cilindro22 = [4150, 2100];
List<int> cilindro23 = [4115, 2098];
List<int> cilindro24 = [4160, 2099];
List<int> cilindro25 = [4285, 2109];
List<int> cilindro26 = [4185, 2087];
List<int> cilindro27 = [4490, 2075];
List<int> cilindro28 = [4220, 2087];
List<int> cilindro29 = [4120, 2114];
List<int> cilindro30 = [4255, 2087];
List<int> cilindro31 = [2255, 801];
这段代码是我使用圆柱的地方:
dropdown() {
return Center(
child: DropdownButton<String>(
items: [
DropdownMenuItem<String>(
child: Text('Cilindro 1'),
value: '$cilindro1',
),
DropdownMenuItem<String>(
child: Text('Cilindro 2'),
value: '$cilindro2',
),
DropdownMenuItem<String>(
child: Text('Cilindro 3'),
value: '$cilindro3',
),
DropdownMenuItem<String>(
child: Text('Cilindro 4'),
value: '$cilindro4',
),
DropdownMenuItem<String>(
child: Text('Cilindro 5'),
value: '$cilindro5',
),
...
DropdownMenuItem<String>(
child: Text('Cilindro 31'),
value: '$cilindro31',
),
],
onChanged: (String value) {
setState(() {
if (value == '$cilindro31') {
var peso = value.substring(1, 5);
var volume = value.substring(7, 10);
_peso = int.parse(peso);
_volume = int.parse(volume);
} else {
var peso = value.substring(1, 5);
var volume = value.substring(7, 11);
_peso = int.parse(peso);
_volume = int.parse(volume);
}
_index = value;
});
},
hint: Text('Selecione o Cilindro'),
isExpanded: true,
value: _index,
),
);
}
我想使用一种他们优化列表和下拉代码的方法,但是我做不到。你能帮我吗?
发布于 2020-07-16 15:42:10
你可以创建一个地图,把一个圆柱的名字映射到它的规格(重量和体积)。
名称的类型是String
,规范的类型是List<Int>
(实际上您应该为它创建一个类,但它与您所要求的内容无关)。
所以地图的类型是Map<String,List<Int>>
你可以这样写:
Map<String,List<Int>> cylinders = {
"cilindro1": [4145, 2100],
"cilindro2": [4405, 2085],
.....
};
当使用圆柱体时,您可以将其映射到items
,DropdownButton<String>
通过:
cylinders.entries.map((entry) => DropdownMenuItem<String>(
child: Text(entry.key),
value: '${entry.value}',
))
https://stackoverflow.com/questions/62938134
复制相似问题