在颤动中使用颜色作为“红色”而不是 Colors.red

问题描述

这是参考对问题 What's the best practice to keep all the constants in Flutter?

评论

我想为我的所有颜色值定义一个单独的文件作为colors.dart

<data type> red = Colors.red (I am not sure of data tpye to be use here I mean String,Color or what)
<data type> cyan = hex code

然后直接用name as

TextStyle(
              color: red,fontSize: 24,),

'red'、'green',就像我们在 Android 中所做的那样。

我看了很多关于S/O的帖子,在大多数实现中,最后还是需要使用点号来访问创建的变量,类似于使用Colors.red,然后使用短名称的目的没有解决像“红色”

然后我看到了@ChinLoong (https://stackoverflow.com/a/64584504/12319976) 的这条评论

ChinLoong 说的很清楚我的想法,但我不知道如何准确地使用这种方法

因为我无法在那里发表评论(由于声望点),所以我在这里提问。

此外,我相信即使使用这种枚举方法,我仍然必须使用点运算符访问颜色变量。即使我会创建一个函数来返回颜色,还是点运算符。

无论如何,我的整个刚性和决心是在使用颜色时避免使用点语法。只是红色或绿色。

请告诉我有没有办法。

谢谢。

解决方法

你可以有一个文件colors.dart,在那个文件中你可以定义而无需任何类

final Color red = Colors.red;

在这种情况下,您可以使用“red”而无需点运算符。

,

制作一个名为 colors.dart

的文件
import 'dart:ui';

const Color red = const Color(0xFFFF0000);
const Color green = const Color(0xFF00FF00);
const Color blue = const Color(0xFF0000FF);
const Color yellow = const Color(0xFFFFFF00);
const Color orange = const Color(0xFFFFA500);
const Color purple = const Color(0xFF800080);

colors.dart 导入到您喜欢使用的任何位置。

import 'package:your_app/utils/colors.dart';

color: red,

通过这种方式,您可以添加您希望在应用中使用的任意数量的自定义颜色。