【问题标题】:Use Strings and routes from a list使用列表中的字符串和路由
【发布时间】:2020-09-29 10:19:00
【问题描述】:

我有这份清单

List list = [
 {'id': '0', 'name': 'BMW', 'route': Bmw},
 {'id': '1', 'name': 'Audi', 'route': Audi},

];

还有这个身体

return Column(
  children: list.map((name) {
    return Container(
      margin: EdgeInsets.all(5),
      child: SizedBox(
        width: double.infinity,
        child: RaisedButton(
          padding: EdgeInsets.all(20),
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(0.0),
          ),
          color: Colors.blue,
          child: Text(
            name,
            style: TextStyle(color: Colors.white),
          ),
          onPressed: () {
            Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => route()),
            );
          },
        ),
),
        );
      }).toList(),
    );
  }
}

但不起作用,我需要通过单击按钮生成具有列表名称和列表路径的按钮,对不起我的英语 xD

【问题讨论】:

  • 当您的应用拥有 1000 家汽车制造商时,您想创建 1000 条路线?
  • 不是 30 或 40
  • 没关系,每条路线会有什么不同?我的意思是小部件布局(不显示图像、技术细节等数据) - 你应该只有一条路线并将不同的数据传递给该路线
  • 每条路线(页面)都有一个详细的列表
  • 这就是为什么我说你应该只有一条路线

标签: list flutter


【解决方案1】:

改变

 child: Text(
            name,
            style: TextStyle(color: Colors.white),
          ),

通过

child: Text(
            name['name'],
            style: TextStyle(color: Colors.white),
          ),

【讨论】:

  • 很酷的工作,但路线不起作用 :( 仅路由到第一个 id
【解决方案2】:

要访问名称,您必须使用 name['name'] 字段从地图访问

对于导航,您可以使用 NamedRoutes 参考这个链接

https://flutter.dev/docs/cookbook/navigation/named-routes

并在“路线”中设置您要导航到的路线名称

以及通过命名路线导航使用

Navigator.pushNamed(context, name['route']);

【讨论】:

  • 这对我不起作用说类型'_Type'不是类型'String'的子类型
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-10
  • 2014-08-23
  • 2021-02-21
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多