【问题标题】:Migrating AccentColor: How to change RadioListTile and SwitchListTile colors?迁移 AccentColor:如何更改 RadioListTile 和 SwitchListTile 颜色?
【发布时间】:2021-09-24 17:27:23
【问题描述】:

Flutter 的新版本(从 2.5 开始)已弃用 ThemeData 中的 accentColor 属性,现在必须从 colorScheme 作为辅助颜色处理 colorScheme: ColorScheme.fromSwatch().copyWith (secondary: newColorForAccent))

如我所见,Flutter中也使用了accentColor来定义CheckBoxTile和SwitchListTile等其他小部件的颜色。

我在 main 中的 ThemeData 如下:

    theme: ThemeData(
      primaryColor: Color (0xFF4BD1FF),
      colorScheme: ColorScheme.fromSwatch().copyWith(secondary: Color (0xFFD8A21B)),
      //textTheme and others
    ),

如何重新定义这些小部件的颜色,以便可以在整个应用程序中使用?

【问题讨论】:

    标签: flutter themes


    【解决方案1】:

    我通过反复试验找到了解决方案。我把它留在这里,以防它对某人有用。基本上需要为 ThemeData 中的每个组件定义主题。这是一个例子:

      checkboxTheme: CheckboxThemeData(
        checkColor: MaterialStateProperty.all(Colors.white),
        fillColor: MaterialStateProperty.all(Color (0xFFD8A21B))
      ),
      switchTheme: SwitchThemeData(
        thumbColor: MaterialStateProperty.all(Color (0xFFD8A21B)),
        trackColor: MaterialStateProperty.all(Color (0x66D8A21B)),
      ),
      radioTheme: RadioThemeData(
        fillColor: MaterialStateProperty.all(Color (0xFFD8A21B))
      ),
    

    由于这是主要的一部分,所以不要忘记在实施后始终进行完全重启。在这种情况下,Flutter Hot reload 不会显示任何变化。

    【讨论】:

      猜你喜欢
      • 2021-05-26
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      • 2022-08-23
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      相关资源
      最近更新 更多