方法1:GlobalKey
import "package:flutter/material.dart"; class Test extends StatefulWidget { @override _TestState createState() => new _TestState(); } class _TestState extends State<Test> { final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>(); @override Widget build(BuildContext context) { return new Scaffold( key: _scaffoldKey, drawer: new Drawer(), appBar: new AppBar( leading: new IconButton( icon: new Icon(Icons.settings), onPressed: () => _scaffoldKey.currentState.openDrawer()), ), ); } }
方法2:builder
class _TestState extends State<Test> { @override Widget build(BuildContext context) { return new Scaffold( drawer: new Drawer(), appBar: new AppBar( leading: Builder( builder: (context) => IconButton( icon: new Icon(Icons.settings), onPressed: () => Scaffold.of(context).openDrawer(), ), ), ), ); } }
flutter drawer 自定义图标 icon 手动打开drawer
原文:https://www.cnblogs.com/loaderman/p/11391340.html