Flutter中如何修改PopupMenuButton的三点按钮颜色?
要修改PopupMenuButton的三点按钮颜色,你可以试试这几种方法:
- 方法一:自定义图标
直接给PopupMenuButton的icon参数传一个自定义Icon组件,手动指定颜色:
PopupMenuButton<Menumodels>( color: Colors.grey, // 自定义三点图标并设置颜色 icon: const Icon(Icons.more_vert, color: Colors.red), onSelected: (item) => onSelected(context, item), itemBuilder: (context) => [...MenuItems.items.map(buildItem).toList()], )
- 方法二:通过Theme统一设置
如果需要局部或全局统一调整样式,用Theme包裹PopupMenuButton,修改PopupMenuThemeData里的图标主题:
Theme( data: Theme.of(context).copyWith( popupMenuTheme: PopupMenuThemeData( iconTheme: const IconThemeData(color: Colors.blue), ), ), child: PopupMenuButton<Menumodels>( color: Colors.grey, onSelected: (item) => onSelected(context, item), itemBuilder: (context) => [...MenuItems.items.map(buildItem).toList()], ), )
- 方法三:使用foregroundColor参数(Flutter 2.5+)
若你的Flutter版本在2.5及以上,可直接设置PopupMenuButton的foregroundColor属性,它会直接控制按钮图标的颜色:
PopupMenuButton<Menumodels>( color: Colors.grey, foregroundColor: Colors.green, // 直接设置按钮颜色 onSelected: (item) => onSelected(context, item), itemBuilder: (context) => [...MenuItems.items.map(buildItem).toList()], )
注:你之前设置的color属性是控制弹出菜单的背景色,并非三点按钮本身的颜色,所以无法达到预期效果。
内容的提问来源于stack exchange,提问作者vinay
相关产品推荐
相关产品推荐

