Flutter Scaffold、Actions 和 End Drawer 一起?

Ant*_*t D 6 flutter

在 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)

Mal*_*aht 4

我遇到了同样的问题。我只使用了一个棘手的解决方案来解决此问题,请执行以下操作:

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)