【问题标题】:Reuse custom color with custom name使用自定义名称重用自定义颜色
【发布时间】:2018-07-10 08:28:34
【问题描述】:

在 Android 中,我可以在我的 colors.xml 中执行此操作:

<color name="my_custom_blue">#F7DC16</color>

在 Flutter 中,重用颜色的唯一方法是在 Theme 中定义它们。但是我想用自定义名称定义我的自定义颜色,所以我可以像这样使用它:

color: Colors.myCustomBlue

有人知道如何实现吗?

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    我建议您在另一个文件中创建自己的自定义颜色:

    class Colors {
      static const Color myCustomBlack = const Color(0x8A000000);
      static const Color white = const Color(0xFFFFFFFF);
    }
    

    但是如果你想在你的项目中使用它们, 使用 CupertinoColors 没有冲突,但使用材料 Colors,您应该将类​​名更改为 MyColors 之类的名称,我认为这更好,或者您可以将 Colors 类从材料库。 如果您想使用它们,只需导入 dart 文件即可。

    【讨论】:

      【解决方案2】:

      你可以使用

      color: MyColors.myCustomBlue
      

      没有办法用您的自定义条目扩展Colors 的静态成员。您可以在 MyColors 中包含所有 Colors 条目,这样您就不必使用多个名称。

      你甚至可以命名你自己的集合Colors,你只需要注意不要同时导入两者(IDE 会警告冲突)

      import 'package:my_package/colors.dart';
      import 'package:flutter/material.dart' hide Colors;
      

      【讨论】:

      • 非常好,如何在我的自定义类中包含颜色条目?抱歉,对飞镖和颤振真的很陌生。
      • 您可以手动复制原始 Colors 类的源代码,也可以像 class /*My*/ Colors { static const Color black = material.Colors.black; ... } 一样引用它们。如果你使用import 'package:flutter/material.dart' as material;来避免命名冲突。
      • 你知道为什么不能设置 ThemeData(primarySwatch:MyColors.myCustomBlue) 吗?
      • @AlexandraDamaschin 我建议创建一个包含更多详细信息的新问题。
      猜你喜欢
      • 2016-08-21
      • 1970-01-01
      • 2017-12-05
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 2018-12-30
      • 1970-01-01
      相关资源
      最近更新 更多