我如何在扑动中使全局类型上下文变量



我只是在尝试从一个页面导航到另一页时,弄清楚了一些问题。 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')),
                ],
              ),
            ),
              ),
            ),
           ),

我仅列出功能的容器窗口小部件。因此,其余的人可以自己弄清楚。

最新更新