flutter - Flutter 主题 - primarySwatch 与 primaryColor
问题描述
定义主题数据时,我应该使用什么 - primarySwatch 或 primaryColor?
它们可以一起使用吗?
最后,它们之间有什么区别?
ThemeData(
primarySwatch: kBaseColor,
brightness: Brightness.light,
primaryColor: kBaseColor,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
解决方案
primaryColor
有一个shade[500] of的类型Color
,它本身有 type 。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]!;
等等。
推荐阅读
- angular - dc.js 显示过滤后的对象计数
- asp.net - 导航属性是否必须在 EF Core 中显式设置?
- spring-boot - 异常时 RabbitMQ 消息未发送到死信队列
- android - 如何在 Kotlin 的 Fragment 中使用 Android AlarmManager?
- python - Django 如何记录客户端 IP 地址?
- ruby-on-rails - Rails Fog 基于远程链接创建文件
- apache-nifi - NIFI || 仅为 True 布尔表达式发送邮件
- frama-c - 如何在 ACSL 中编写“是 2 的幂”谓词?
- scala - Neo4j社区版安装问题HostnamePortTest失败
- filenames - 文件名的 Base64 编码字符串