如何正确设置Flutter Switch Widget主题

jos*_*tit 1 flutter

我正在尝试在 ThemeData 构造函数中对 flutter 的 switch 小部件进行主题化,但在定义 Switch 主题时遇到了一些困难。当我将其用于属性时switchTheme

    switchTheme: SwitchThemeData(
      thumbColor: MaterialStateProperty.all(primary),
    ),

Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

在此输入图像描述

当我输入这个时:

    switchTheme: SwitchThemeData(
      thumbColor: MaterialStateProperty.all(primary),
      trackColor: MaterialStateProperty.all(primary),
    ),
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

在此输入图像描述

我期望/想要的是开关的轨道在关闭时呈灰色,拇指呈橙色,然后轨道和拇指在打开时呈橙色。我们是否应该以某种方式使用 MaterialStateProperty 类?

jos*_*tit 6

阅读此处的文档后就明白了

    switchTheme: SwitchThemeData(
        thumbColor: MaterialStateProperty.all(primary),
        trackColor: MaterialStateProperty.resolveWith((states) =>
            states.contains(MaterialState.selected) ? primary : null)),
Run Code Online (Sandbox Code Playgroud)