【发布时间】:2019-01-14 13:32:09
【问题描述】:
我的动态菜单在构建上下文时遇到了问题。
其实我是想动态创建一个菜单但是不知道怎么在_MenuItem的类中使用上下文。
还有其他方法吗?
我的代码:
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
...
body: MenuButtons(kMenuCard),
);
}
}
class MenuButtons extends StatelessWidget {
final List<MenuCard> _menuButtons;
MenuButtons(this._menuButtons);
@override
Widget build(BuildContext context) {
return GridView.count(
crossAxisCount: 2,
children: _buildMenu()
);
}
List<_MenuItem> _buildMenu() {
return _menuButtons.map((button) => _MenuItem(button)).toList();
}
}
在这部分我的 IDE 提示我:“缺少构建上下文”并且我不知道如何以不同的方式实现 buildContext
class _MenuItem extends GridTile {
_MenuItem(MenuCard button)
: super(
child:GestureDetector(
onTap: (){Navigator.push(context, "${button.route}")},
child: Card(
color: Colors.teal,
child: Center(
child: Text("${button.title}"),
),
),
),
);
}
【问题讨论】: