扑动改变图标颜色



我试图改变图标的颜色,使其与文本的其余部分相匹配。我使用以下语句来根据主题确定使用哪个图标:

class ChangeThemeButtonWidget extends StatelessWidget {
const ChangeThemeButtonWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return IconButton(
icon: Icon(Provider.of<ThemeProvider>(context).isDarkMode
? dark_mode_icon()
: Icons.light_mode),
onPressed: () {
final provider = Provider.of<ThemeProvider>(context, listen: false);
provider.toggleTheme(!provider.isDarkMode);
},
);
}

IconData dark_mode_icon() {
//return IconData(0xe37a, fontFamily: 'MaterialIcons');
IconData dark_mode_i = IconData(Icons.dark_mode, color: Colors.black);
return dark_mode_i;
}

我的问题是,这会返回错误"参数类型'IconData'不能分配给参数类型'int'。">

我怎样才能编辑这个图标的样式,使它正确地改变颜色?

非常感谢你的帮助

你在错误的地方上色。IconData只是一个基于字体数据描述Icon的小部件。这与颜色无关。你必须把这些IconData放到图标小部件中并在那里改变颜色。

class ChangeThemeButtonWidget extends StatelessWidget {
const ChangeThemeButtonWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return IconButton(
icon: Icon(Provider.of<ThemeProvider>(context).isDarkMode
? Icons.dark_mode
: Icons.light_mode,
color: #HERE 
),
onPressed: () {
final provider = Provider.of<ThemeProvider>(context, listen: false);
provider.toggleTheme(!provider.isDarkMode);
},
);
}

简单地使用这个代码:

IconButton(
onPressed: () {},
color: Colors.blue,
iconSize: 100,
icon: Icon(
Icons.train,
),
)

这是如何应用颜色到图标按钮。

图标。暗模式是图标数据。IconData()将接受一个整数,所以你必须写IconData(Icons.darkmode.codePoint)