【问题标题】:Flutter theme - primarySwatch vs primaryColorFlutter 主题 - primarySwatch 与 primaryColor
【发布时间】:2021-06-05 15:24:27
【问题描述】:

在定义主题数据时,我应该使用什么 - primarySwatch 或 primaryColor?

它们可以一起使用吗?

最后,它们之间有什么区别?

ThemeData(
    primarySwatch: kBaseColor,
    brightness: Brightness.light,
    primaryColor: kBaseColor,
    visualDensity: VisualDensity.adaptivePlatformDensity,
),

【问题讨论】:

    标签: flutter


    【解决方案1】:

    primaryColor 的类型为 Color,其 shade[500]primarySwatch,它本身的类型为 MaterialColor

    最好使用primarySwatch 让应用为其组件定义不同的阴影。

    这是theme_data.dart(材质库)中如何定义主题颜色的代码片段:

        final Brightness _brightness = brightness ?? colorScheme?.brightness ?? Brightness.light;
        final bool isDark = _brightness == Brightness.dark;
    
        primaryColor ??= isDark ? Colors.grey[900]! : primarySwatch;
        primaryColorLight ??= isDark ? Colors.grey[500] : primarySwatch[100]!
        toggleableActiveColor ??= isDark ? Colors.tealAccent[200]! : (accentColor ?? primarySwatch[600]!);
        secondaryHeaderColor ??= isDark ? Colors.grey[700]! : primarySwatch[50]!;
        textSelectionHandleColor ??= isDark ? Colors.tealAccent[400]! : primarySwatch[300]!;
    

    等等。

    【讨论】:

      猜你喜欢
      • 2018-10-17
      • 2021-08-22
      • 2021-11-16
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 2022-07-19
      • 1970-01-01
      • 2021-06-26
      相关资源
      最近更新 更多