首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使地图飘动?

如何使地图飘动?
EN

Stack Overflow用户
提问于 2020-07-16 15:29:06
回答 1查看 38关注 0票数 0

在我的颤振代码的一部分,我有31个气缸,其中每个有其重量和体积。我想做一种地图来优化代码。以下是代码:

代码语言:javascript
运行
复制
  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]; 

这段代码是我使用圆柱的地方:

代码语言:javascript
运行
复制
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,
      ),
    );
  } 

我想使用一种他们优化列表和下拉代码的方法,但是我做不到。你能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-16 15:42:10

你可以创建一个地图,把一个圆柱的名字映射到它的规格(重量和体积)。

名称的类型是String,规范的类型是List<Int> (实际上您应该为它创建一个类,但它与您所要求的内容无关)。

所以地图的类型是Map<String,List<Int>>

你可以这样写:

代码语言:javascript
运行
复制
Map<String,List<Int>> cylinders = {
    "cilindro1": [4145, 2100],
    "cilindro2": [4405, 2085],
    .....
};

当使用圆柱体时,您可以将其映射到itemsDropdownButton<String>通过:

代码语言:javascript
运行
复制
cylinders.entries.map((entry) => DropdownMenuItem<String>(
    child: Text(entry.key),
    value: '${entry.value}',
))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62938134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档