在网站material.io中写道:
要创建品牌深色表面,请以低不透明度覆盖推荐的深色主题表面颜色 (#121212) 上的主要品牌颜色。颜色 #1F1B24 是深色主题表面颜色 #121212 和8% Primary color组合的结果。
我的问题是:
- 如何计算我的颜色的 8%?
- 如何在Flutter中实现这个覆盖的东西?
在网站material.io中写道:
要创建品牌深色表面,请以低不透明度覆盖推荐的深色主题表面颜色 (#121212) 上的主要品牌颜色。颜色 #1F1B24 是深色主题表面颜色 #121212 和8% Primary color组合的结果。
我的问题是:
不使用小部件的叠加解决方案是使用Color.alphaBlend
将[s] 前景色组合为背景色之上的透明色,并返回[s] 生成的组合色。
你像这样使用它:
Color newColor = Color.alphaBlend(foregroundColor, backgroundColor);
颜色的 1.8% 是颜色,但不透明度为 8%。这可以通过使用Opacity 小部件或使用Colors 类的 withOpacity 方法来实现。
2.
覆盖是元素上的半透明覆盖,指示状态。叠加层提供了一种使用不透明度可视化状态的系统方法。
要在 Flutter 中提供 Overlay,请使用Overlay Widget。
Color.fromRGBO(r, g, b, opacity)
指定不透明度。在您的情况下,从 0.0(完全透明)到 1.0(完全不透明),您的不透明度可能为 0.08 以模拟 8% 的不透明度,因此您的代码是Color.fromRGBO(31, 26, 36, 0.08)
覆盖可以使用Stack()
一个位置小部件来实现,它的工作方式与 Colum 或 Row 非常相似,但 Stack 将每个小部件放在另一个小部件的顶部