在 Scaffold 中,如果使用“actions”参数,它将隐藏“endDrawer”。可以两者都显示吗?
var tmp = new Scaffold(
/// end drawer
endDrawer: Container(color: Colors.red,
child: Text('END DRAWER')),
appBar: new AppBar(
title: Text('Title'),
actions: <Widget>[
/// Cancel, Save
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: IconButton(
icon: Icon(Icons.clear,size: 24.0,),
onPressed: () => Navigator.pop(context), //cancelButton,
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: IconButton(
icon: Icon(Icons.check_circle,size: 30.0,),
onPressed: () => Navigator.pop(context),
),)
],
),
body: new Container(color: Colors.amber,);
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题。我只使用了一个棘手的解决方案来解决此问题,请执行以下操作:
1.
class _MainPageState extends State<MainPage> {
final _scaffoldKey = GlobalKey<ScaffoldState>(); `
here we add (final _scaffoldKey). inside the class.
Run Code Online (Sandbox Code Playgroud)
2.
return Scaffold(
key: _scaffoldKey
Run Code Online (Sandbox Code Playgroud)
在脚手架内部将变量分配给键
3.添加第一个图标按钮为icon.menu,当按下图标时将显示最终抽屉,如下所示:
IconButton(
icon: new Icon(Icons.menu,color: Colors.white),
onPressed: () {
_scaffoldKey.currentState.openEndDrawer();
},
),
Run Code Online (Sandbox Code Playgroud)
和
class _MainPageState extends State<MainPage> {
final _scaffoldKey = GlobalKey<ScaffoldState>();
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
appBar: AppBar(
actions: [
return IconButton(
icon: new Icon(Icons.menu, color: Colors.white),
onPressed: () {
_scaffoldKey.currentState.openEndDrawer();
});
]
),
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4867 次 |
| 最近记录: |