【发布时间】:2018-07-10 08:28:34
【问题描述】:
在 Android 中,我可以在我的 colors.xml 中执行此操作:
<color name="my_custom_blue">#F7DC16</color>
在 Flutter 中,重用颜色的唯一方法是在 Theme 中定义它们。但是我想用自定义名称定义我的自定义颜色,所以我可以像这样使用它:
color: Colors.myCustomBlue
有人知道如何实现吗?
【问题讨论】:
在 Android 中,我可以在我的 colors.xml 中执行此操作:
<color name="my_custom_blue">#F7DC16</color>
在 Flutter 中,重用颜色的唯一方法是在 Theme 中定义它们。但是我想用自定义名称定义我的自定义颜色,所以我可以像这样使用它:
color: Colors.myCustomBlue
有人知道如何实现吗?
【问题讨论】:
我建议您在另一个文件中创建自己的自定义颜色:
class Colors {
static const Color myCustomBlack = const Color(0x8A000000);
static const Color white = const Color(0xFFFFFFFF);
}
但是如果你想在你的项目中使用它们, 使用 CupertinoColors 没有冲突,但使用材料 Colors,您应该将类名更改为 MyColors 之类的名称,我认为这更好,或者您可以将 Colors 类从材料库。 如果您想使用它们,只需导入 dart 文件即可。
【讨论】:
你可以使用
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;来避免命名冲突。