使用 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,
      ),
    );

这解决了我的问题。