使用 ThemeData 更改为 MaterialButton 的颜色
change to MaterialButton's colour using ThemeData
我的应用程序中有一个自定义按钮,可以使用 GetMaterialApp 内部的 ThemeData 对其进行操作,但我无法更改其颜色。我必须在这里更改它的颜色,因为我的应用程序有几个主题可以切换。
我的自定义按钮是:
MaterialButton(
onPressed: () {
...
},
child: Icon(
icon,
color: Get.theme.iconTheme.color,
),
);
ThemeData 是:
ThemeData customThemeDataLight = ThemeData(
...
buttonTheme: const ButtonThemeData(
height: 60,
buttonColor: cpDarkBlue,
shape: OutlineInputBorder(
borderSide: BorderSide(width: 0.5),
borderRadius: BorderRadius.only(
topRight: Radius.circular(15.0),
bottomRight: Radius.circular(15.0),
),
),
),
...
);
我的 main.dart 文件是:
return GetMaterialApp(
...
theme: customThemeDataLight,
darkTheme: customThemeDataDark,
themeMode: ThemeMode.system,
...
);
MatterialButton 不直接访问 themeData。所以,我让它手动访问 themeData 并且它起作用了。
例如:
MaterialButton(
color: Get.theme.primaryColor,
onPressed: () {
...
},
child: Icon(
icon,
color: Get.theme.iconTheme.color,
),
);
这解决了我的问题。
我的应用程序中有一个自定义按钮,可以使用 GetMaterialApp 内部的 ThemeData 对其进行操作,但我无法更改其颜色。我必须在这里更改它的颜色,因为我的应用程序有几个主题可以切换。
我的自定义按钮是:
MaterialButton(
onPressed: () {
...
},
child: Icon(
icon,
color: Get.theme.iconTheme.color,
),
);
ThemeData 是:
ThemeData customThemeDataLight = ThemeData(
...
buttonTheme: const ButtonThemeData(
height: 60,
buttonColor: cpDarkBlue,
shape: OutlineInputBorder(
borderSide: BorderSide(width: 0.5),
borderRadius: BorderRadius.only(
topRight: Radius.circular(15.0),
bottomRight: Radius.circular(15.0),
),
),
),
...
);
我的 main.dart 文件是:
return GetMaterialApp(
...
theme: customThemeDataLight,
darkTheme: customThemeDataDark,
themeMode: ThemeMode.system,
...
);
MatterialButton 不直接访问 themeData。所以,我让它手动访问 themeData 并且它起作用了。
例如:
MaterialButton(
color: Get.theme.primaryColor,
onPressed: () {
...
},
child: Icon(
icon,
color: Get.theme.iconTheme.color,
),
);
这解决了我的问题。