You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Flutter中Drawer widget图标的默认颜色与尺寸

Flutter修改Drawer默认图标颜色与尺寸的解决方案

以下方案针对Scaffold自动生成的Drawer触发图标(左上角汉堡菜单按钮)的修改,分为三种常用实现方式:


方法1:单页面单独配置

直接在对应页面的Scaffold的AppBar中设置iconTheme参数,仅对当前页面生效:

  • 代码示例:
Scaffold(
  appBar: AppBar(
    // 统一配置AppBar内所有图标的样式,包含默认Drawer汉堡图标
    iconTheme: const IconThemeData(
      color: Colors.red, // 自定义图标颜色
      size: 32, // 自定义图标尺寸
    ),
    title: const Text("单页面Drawer示例"),
  ),
  drawer: const Drawer(),
)

方法2:全局统一配置

在项目根节点MaterialApp的主题中配置,对所有页面的默认Drawer图标生效:

  • 代码示例:
MaterialApp(
  theme: ThemeData(
    appBarTheme: const AppBarTheme(
      iconTheme: IconThemeData(
        color: Colors.green,
        size: 28,
      ),
    ),
  ),
  home: const MyHomePage(),
)

方法3:完全自定义图标

如果需要替换默认汉堡图标样式,或者需要更精细的样式控制,可以直接自定义AppBar的leading组件:

  • 代码示例:
Scaffold(
  appBar: AppBar(
    leading: IconButton(
      // 可替换为任意自定义组件,比如Image、自定义Icon等
      icon: const Icon(
        Icons.menu_open,
        color: Colors.purple,
        size: 36,
      ),
      onPressed: () {
        // 手动触发打开Drawer逻辑
        Scaffold.of(context).openDrawer();
      },
    ),
    title: const Text("自定义Drawer图标"),
  ),
  drawer: const Drawer(),
)

注意:自定义leading后默认的抽屉打开逻辑会失效,需要手动在onPressed中调用Scaffold.of(context).openDrawer()实现点击打开抽屉的效果。


内容的提问来源于stack exchange,提问作者Ozz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:45:04