5

在网站material.io中写道:

要创建品牌深色表面,请以低不透明度覆盖推荐的深色主题表面颜色 (#121212) 上的主要品牌颜色。颜色 #1F1B24 是深色主题表面颜色 #121212 和8% Primary color组合的结果。

品牌颜色

我的问题是:

  1. 如何计算我的颜色的 8%?
  2. 如何在Flutter中实现这个覆盖的东西?
4

3 回答 3

3

不使用小部件的叠加解决方案是使用Color.alphaBlend

将[s] 前景色组合为背景色之上的透明色,并返回[s] 生成的组合色。

你像这样使用它:

Color newColor = Color.alphaBlend(foregroundColor, backgroundColor);
于 2020-03-04T15:18:44.730 回答
1

颜色的 1.8% 是颜色,但不透明度为 8%。这可以通过使用Opacity 小部件或使用Colors 类的 withOpacity 方法来实现

2.

覆盖是元素上的半透明覆盖,指示状态。叠加层提供了一种使用不透明度可视化状态的系统方法。

要在 Flutter 中提供 Overlay,请使用Overlay Widget

flutter-using-overlay-to-display-floating-widgets 中的示例

于 2019-12-21T06:35:24.177 回答
1
  1. Color.fromRGBO(r, g, b, opacity)指定不透明度。在您的情况下,从 0.0(完全透明)到 1.0(完全不透明),您的不透明度可能为 0.08 以模拟 8% 的不透明度,因此您的代码是Color.fromRGBO(31, 26, 36, 0.08)

  2. 覆盖可以使用Stack()一个位置小部件来实现,它的工作方式与 Colum 或 Row 非常相似,但 Stack 将每个小部件放在另一个小部件的顶部

于 2019-12-21T06:37:30.870 回答