【问题标题】:Dark mode colors for FlutterFlutter 的深色模式颜色
【发布时间】:2019-12-21 04:30:33
【问题描述】:

在网站material.io 中写道:

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

我的问题是:

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

【问题讨论】:

    标签: flutter material-design uicolor android-dark-theme


    【解决方案1】:

    不使用小部件的覆盖解决方案是使用Color.alphaBlend

    组合[s]前景色作为透明色覆盖在 背景颜色,并返回[s]生成的组合颜色。

    你可以这样使用它:

    Color newColor = Color.alphaBlend(foregroundColor, backgroundColor);
    

    【讨论】:

      【解决方案2】:

      颜色的 1.8% 是颜色,但不透明度为 8%。这可以通过使用Opacity widgetwithOpacity method of the Colors class 来实现。

      2.

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

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

      example in flutter-using-overlay-to-display-floating-widgets

      【讨论】:

        【解决方案3】:
        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 将每个小部件放在另一个小部件的顶部

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-12-20
          • 1970-01-01
          • 2020-02-08
          • 2020-08-17
          • 2021-10-22
          • 1970-01-01
          • 1970-01-01
          • 2019-12-01
          相关资源
          最近更新 更多