首页 文章

关闭导航器时出现颤动错误

提问于
浏览
0

请求导航器操作的上下文不包含导航器

完整代码在这里

class _MyAppState extends State<MyApp> {
   @override
   Widget build(BuildContext context) {
     return new MaterialApp(
       home: new Scaffold(
         drawer: new Drawer(child: new ListView(
           children: <Widget>[
               new DrawerHeader(

                 decoration:BoxDecoration(

                   color: Colors.blue
                 ),
                 child: new Container(
                   child: new Text("Hearer name"),

                 ),),
               new ListTile(
                 title: new Text("pop1"),

                 onTap: (){Navigator.pop(context);},
               ),
               new ListTile(
                 title: new Text("pop2"),
                 onTap: (){Navigator.pop(context);},
               ),


             new Container(
               padding: const EdgeInsets.all(20.0),
               child: new Text("asdsad"),
               decoration: BoxDecoration(
                 color: Colors.grey
               ),
             ), new ListTile(
                 title: new Text("pop4"),
                 onTap: (){Navigator.pop(context);},
               ),
             new Container(
               padding: const EdgeInsets.all(20.0),
               child: new Text("opt2"),
             ), new Container(
               padding: const EdgeInsets.all(20.0),
               child:
                   new Text("Asdsa"),




             ),




           ],
         ),),
         appBar: new AppBar(
           title: new Text("Hi , i am milla"),

         ),
         body: new Center(
           child: new ListView(
             shrinkWrap: true,
             padding: const EdgeInsets.all(20.0),
             children: <Widget>[
               new ProductItem("orange"),


             ],
           )
         ),
       ),
     );
   }

完整的错误代码

:══╡通过手套的异常╞══════════════════════════════════════════════════════════════════════════════════════════════════════ ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════>>> :使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):用于从导航器推送或弹出路由的上下文必须是作为I / flutter(3551)的小部件的上下文:Navigator小部件的后代 . I / flutter(3551):I / flutter(3551):当抛出异常时,这就是堆栈:I / flutter(3551):#0 Navigator.of . (包:flutter / src / widgets / navigator.dart:1179:9)I / flutter(3551):1 Navigator.of(包:flutter / src / widgets / navigator.dart:1186:6)I / flutter(3551) ):2 Navigator.pop(包:flutter / src / widgets / navigator.dart:1072:22)I / flutter(3551):#3 _MyAppState.build . (file:///project/flutter_app_2/lib/main.dart:31:38)I / flutter(3551):4 _InkResponseState._handleTap(package:flutter / src / material / ink_well.dart:494:14)I / flutter(3551):5 _InkResponseState.build . (包:flutter / src / material / ink_well.dart:549:30)I / flutter(3551):6 GestureRecognizer.invokeCallback(包:flutter / src / gestures / recognizer.dart:102:24)I / flutter(3551) ):#7 TapGestureRecognizer._checkUp(包:flutter / src / gestures / tap.dart:161:9)I / flutter(3551):#8 TapGestureRecognizer.acceptGesture(package:flutter / src / gestureures / tap.dart:123 :7)I / flutter(3551):#9 GestureArenaManager.sweep(包:flutter / src / gestures / arena.dart:156:27)I / flutter(3551):10 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent(package:flutter / src /手势/ binding.dart:147:20)I / flutter(3551):11 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent(包:flutter / src / gestures / binding.dart:121:22)I / flutter(3551):12 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent( package:flutter / src / gestures / binding.dart:101:7)I / flutter(3551):13 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue(package:flutter / src / gestures / bi nding.dart:64:7)I / flutter(3551):14 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket(package:flutter / src / gestures / binding.dart:48:7)I / flutter(3551):15 _invoke1(dart:ui / hooks.dart:134:13)I / flutter(3551):#16 _dispatchPointerDataPacket(dart:ui / hooks.dart:91:5)I / flutter(3551):I / flutter(3551):处理程序:onTap I / flutter(3551):识别器:I / flutter(3551):TapGestureRecognizer#a8d39(debugOwner:GestureDetector,state:ready,won arena,finalPosition:I / flutter(3551):Offset(51.9,239.7),send tap down)I / flutter(3551):══════════════════════════════════════════════════════════════════════════════════════════════════ ══════════════════════════════════════════════════ = / flutter(3551):抛出了另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . I / flutter(3551):抛出另一个异常:使用不包含导航器的上下文请求导航器操作 . D / EGL_emulation(3551):eglMakeCurrent:0xa84052a0:ver 2 0(tinfo 0xa84032d0)与设备的连接丢失 .

2 回答

  • 0

    我检查了你的代码,它在这里使用这个虚拟代码工作正常...

    import 'package:flutter/material.dart';
    
    void main() => runApp(new MyApp());
    
    class MyApp extends StatelessWidget {
     @override
    Widget build(BuildContext context) {
     return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(title: 'Flutter Demo Home Page'),
     );
    }
    }
    
     class MyHomePage extends StatefulWidget {
    MyHomePage({Key key, this.title}) : super(key: key);
    
    final String title;
    @override
    _MyHomePageState createState() => new _MyHomePageState();
     }
    
    class _MyHomePageState extends State<MyHomePage> {
    @override
    Widget build(BuildContext context) {
    return new Scaffold(
        drawer: new Drawer(
    
          child: new ListView(
    
          children: <Widget>[
            new DrawerHeader(
    
              decoration: BoxDecoration(
    
                  color: Colors.blue
              ),
              child:new Text("Hearer name"),
    
              ),
            new ListTile(
              title: new Text("pop1"),
    
              onTap: () {
                Navigator.pop(context);
              },
            ),
            new ListTile(
              title: new Text("pop2"),
              onTap: () {
                Navigator.pop(context);
              },
            ),
    
    
            new Container(
              padding: const EdgeInsets.all(20.0),
              child: new Text("asdsad"),
              decoration: BoxDecoration(
                  color: Colors.grey
              ),
            ), new ListTile(
              title: new Text("pop4"),
              onTap: () {
                Navigator.pop(context);
              },
            ),
            new Container(
              padding: const EdgeInsets.all(20.0),
              child: new Text("opt2"),
            ), new Container(
              padding: const EdgeInsets.all(20.0),
              child:
              new Text("Asdsa"),
            ),
          ],
        ),),
        appBar: new AppBar(
          title: new Text("Hi , i am milla"),
        ),
        body: new Center(
            child: new ListView(
              shrinkWrap: true,
              padding: const EdgeInsets.all(20.0),
              children: <Widget>[
              ],
            )
        ),
      );
      }
     }
    
  • 0

    我认为这段代码可能对您有所帮助 .

    in Drawer screen:

    drawer: new Drawer(
          child: new Column(
            children: <Widget>[
              new DrawerHeader(
                child: new Container(
                  child: new Text("Hearer name"),
                ),
              ),
              new Flexible(
                child: new ListView.builder(
                  itemCount: 1,
                  itemBuilder: (BuildContext context, int index) {
                    return new ListTile(
                      title: new Text("Tap $index"),
                      onTap: () => Navigator.of(context).pop(),
                    );
                  },
                ),
              )
            ],
          ),
        ),
    

相关问题