Flutter导航抽屉汉堡图标颜色修改问题求助
解决Flutter导航抽屉汉堡图标颜色无法修改的问题
嗨,我来帮你搞定这个汉堡图标颜色的问题!默认的汉堡图标颜色会跟着你的AppBar主题走,不过我们有几种简单的方法来修改它:
方法1:直接自定义AppBar的leading按钮
这种方法最灵活,你可以完全控制图标的样式:
appBar: AppBar( title: Text("Navigation Drawer"), leading: IconButton( icon: Icon(Icons.menu, color: Colors.yellow), // 这里替换成你想要的颜色 onPressed: () { Scaffold.of(context).openDrawer(); }, ), ),
方法2:通过AppBar的iconTheme统一设置
如果你想让AppBar里的所有图标(比如汉堡、返回键)都用同一个颜色,用这个方法最方便:
appBar: AppBar( title: Text("Navigation Drawer"), iconTheme: IconThemeData(color: Colors.blue), // 统一设置AppBar图标颜色 ),
方法3:全局主题配置(整个App生效)
如果你的整个App都需要统一的AppBar图标颜色,可以在MaterialApp里配置主题:
MaterialApp( theme: ThemeData( appBarTheme: AppBarTheme( iconTheme: IconThemeData(color: Colors.green), ), ), home: Test(), )
修改后的完整代码示例(方法2)
class Test extends StatefulWidget { @override _TestState createState() => new _TestState(); } class _TestState extends State<Test> { @override Widget build(BuildContext context) { return new Scaffold( drawer: new Drawer(), appBar: new AppBar( title: new Text("Navigation Drawer"), // 添加这一行修改图标颜色 iconTheme: IconThemeData(color: Colors.white), ), ); } }
原理说明:默认情况下,汉堡图标的颜色继承自AppBar的iconTheme,而iconTheme又继承自全局主题的primaryIconTheme。上面的方法都是通过覆盖这个层级的颜色设置来达到修改图标的目的~
内容的提问来源于stack exchange,提问作者Ammy Kang
相关产品推荐
相关产品推荐

