Flutter 导航器获取了错误的上下文

Flutter 导航器获取了错误的上下文,flutter,Flutter,我有一个颤振应用程序,它显示一个摄像头,然后使用git://github.com/arashbi/flutter_qrcode_reader 在回拨时,我想导航到另一个屏幕,显示我从某个查询中获得的信息。问题是,似乎Navigator获取了错误的上下文,因此我将第二个页面作为小部件推到第一个页面中,而不是整个页面导航 第一页的构建如下所示: @override Widget build(BuildContext context) { Widget main = new Sca

我有一个颤振应用程序,它显示一个摄像头,然后使用git://github.com/arashbi/flutter_qrcode_reader 在回拨时,我想导航到另一个屏幕,显示我从某个查询中获得的信息。问题是,似乎Navigator获取了错误的上下文,因此我将第二个页面作为小部件推到第一个页面中,而不是整个页面导航

第一页的构建如下所示:

@override
  Widget build(BuildContext context) {
    Widget main =
    new Scaffold(
      appBar: _buildAppBar(),
      body: Column(
        children: <Widget>[
          _eventButton ?? new Text(""),
          new Center(
              child: new Text("Hi"))
        ],
      ),
      floatingActionButton: new FloatingActionButton(
        onPressed: 
            () {
          new QRCodeReader()
              .setAutoFocusIntervalInMs(200)
              .setForceAutoFocus(true)
              .setTorchEnabled(true)
              .setHandlePermissions(true)
              .setExecuteAfterPermissionGranted(true)
              .scan().then((barcode) => _showTicketPage(barcode));
        }
        ,
        child: new Icon(Icons.check),
      ),
    );
    if (!_loading) {
      return main;
    } else {
      return new Stack(
          children: [main,
          new Container(

              decoration: new BoxDecoration(
                  color: Color.fromRGBO(220, 220, 220,
                      0.3) // Specifies the background color and the opacity
              ),
              child: new Center(child: new CircularProgressIndicator(),))
          ]
      );
    }
  }
获取条形码后,第二个屏幕-TicketScreen-被推到“Hi”窗口小部件下。我甚至不知道这是可能的

我试图获取屏幕的上下文,将其保存到一个字段变量,但这也没有帮助


我怎样才能修好它?我已经没有主意了。

第一句话似乎缺少了一些“我有一个显示摄像头的摄像头”我真的看不出你在showTicketPage中使用的上下文是从哪里来的,但我认为上下文应该已经包含了脚手架。如果你把身体里的所有东西都放在一个单独的小部件里,也许它会解决这个问题?对于flutter,我喜欢让我的小部件保持小型,并且有一个单一的用途。内部小部件将通过这种方式获得正确的上下文,但实际上并不是这样。我试过了。调试时,上下文属于页面,但这是第一个上下文。我不知道建设者的内容是从哪里来的。我还尝试了不同的插件在一个不同的非常简单的设置,没有workContext已经在状态classI做了完全相同的问题。。。你有没有找到解决办法?
   void _showTicketPage(var barcode) {
      Navigator.push(context, MaterialPageRoute(
          builder: (BuildContext context) => TicketScreen(barcode)));
    }