我只是在尝试从一个页面导航到另一页时,弄清楚了一些问题。 navigation.push 方法需要上下文变量,我需要引用导航的上下文。
Widget navBox(Color aColor, double left, double top, Icon icon,String action, Route route) {
return Positioned (
left: left,
top: top,
child: InkWell(
borderRadius: BorderRadius.circular(30.0),
onTap: () {
Navigator.push(context, route);
},
child: new Container(
height: 220.0,
width: 220.0,
decoration: BoxDecoration(
color: aColor,
borderRadius: BorderRadius.circular(30.0),
),
child: Padding(
padding: EdgeInsets.all(40.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
icon,
new Text(action, style: TextStyle(color: Colors.white, fontSize: 20.0, fontFamily: 'Oxygen')),
],
),
),
),
),
);
}
我希望通过定义适当的路由的呼叫来导航到另一页。
我有错误的错误:
处理手势时抛出以下nosuchmethoderror
在null上称为"祖先stateoftype"。
只需在方法的签名中添加一个context
参数即可。但还要记住,方法不应该有那么多参数,因为它使它们更难使用。
用新的构建器或材料小部件解决问题。
这是我如何解决问题的片段:
child: new Container(
height: 220.0,
width: 220.0,
decoration: BoxDecoration(
color: aColor,
borderRadius: BorderRadius.circular(30.0),
),
child: new Builder(
builder: (context) => InkWell(
onTap: () {
Navigator.push(context,
MaterialPageRoute(builder: (context) => GetData()),);
},
child: Padding(
padding: EdgeInsets.all(40.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
icon,
new Text(action, style: TextStyle(color: Colors.white, fontSize: 20.0, fontFamily: 'Oxygen')),
],
),
),
),
),
),
我仅列出功能的容器窗口小部件。因此,其余的人可以自己弄清楚。