我在这个问题中使用的方法来改变颤抖的脚手架的身体:
所描述的方法非常有效。现在,我只希望抽屉在用户点击其中一项后自动关闭。
我尝试使用Navigator.pop()方法,但它会弹出整个屏幕,而不仅仅是弹出窗口。这让我的屏幕全黑了。
有什么建议?
您是否正在使用Navigator.of(context).pop()?我无法重现您的问题,您可以发表一个简单的例子来重现它吗?
Navigator.of(context).pop()
以下代码按预期方式工作:设置按钮弹出抽屉,而其他按钮则没有。
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> { String text = "Initial Text"; @override Widget build(BuildContext context) { return new Scaffold( drawer: new Drawer( child: new ListView( children: <Widget>[ new Container(child: new DrawerHeader(child: new Container())), new Container ( child: new Column( children: <Widget>[ new ListTile(leading: new Icon(Icons.info), onTap:(){ setState((){ text = "info pressed"; }); } ), new ListTile(leading: new Icon(Icons.save), onTap:(){ setState((){ text = "save pressed"; }); } ), new ListTile(leading: new Icon(Icons.settings), onTap:(){ setState((){ text = "settings pressed"; }); Navigator.of(context).pop(); } ), ] ), ) ], ), ), appBar: new AppBar(title: new Text("Test Page"),), body: new Center(child: new Text((text)), )); } }