Col*_*son 25
Navigator.pop()将弹出Drawer堆栈中的路径并使其关闭.
小智 17
首先创建一个 ScaffoldState 键
GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
Scaffold(
key: _scaffoldKey,)
Run Code Online (Sandbox Code Playgroud)
现在您可以使用 toggleDrawer() 方法打开和关闭抽屉。
左边抽屉
toggleDrawer() async {
if (_scaffoldKey.currentState.isDrawerOpen) {
_scaffoldKey.currentState.openEndDrawer();
} else {
_scaffoldKey.currentState.openDrawer();
}
}
Run Code Online (Sandbox Code Playgroud)
正确的抽屉
toggleDrawer() async {
if (scaffoldKey.currentState.isDrawerOpen) {
scaffoldKey.currentState.openDrawer();
} else {
scaffoldKey.currentState.openEndDrawer();
}
}
Run Code Online (Sandbox Code Playgroud)
Had*_*ard 16
Navigator.of(context).pop() 应该做你想要的:)
https://docs.flutter.io/flutter/widgets/Navigator-class.html https://docs.flutter.io/flutter/material/Drawer-class.html
Cop*_*oad 12
如果您只是想关闭Drawer,则可以使用以下任一方法:
Navigator.pop(context);
Navigator.of(context).pop();
Run Code Online (Sandbox Code Playgroud)
如果你想导航到一个新页面,你可以使用
Navigator.popAndPushNamed(context, "/new_page");
Run Code Online (Sandbox Code Playgroud)
或者
Navigator.pop(context);
Navigator.push(context, MaterialPageRoute(builder: (_) => Page2()));
Run Code Online (Sandbox Code Playgroud)
小智 6
这就是答案
班级第一
GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
Run Code Online (Sandbox Code Playgroud)
第二个小部件
Scaffold(key: _scaffoldKey,)
Run Code Online (Sandbox Code Playgroud)
代码中的第三个
if (_scaffoldKey.currentState.isDrawerOpen) {
_scaffoldKey.currentState.openEndDrawer();
}
Run Code Online (Sandbox Code Playgroud)
对于最新的 Flutter 版本(我写这篇文章时是 v0.3.2),实现略有变化,Navigator.pop()现在需要给定的上下文。
Navigator.pop(context)是关闭路由的典型用法。
Navigator.pop(context, true )用于关闭具有返回结果的路由。
请参阅Flutter 的 Cookbook 上的Drawer Class和示例。
| 归档时间: |
|
| 查看次数: |
8878 次 |
| 最近记录: |