如何将Flutter颜色转换为字符串并转换回颜色
我正在将颜色转换为字符串。然后,我将颜色转换为字符串。不幸的是,当我想将其转换回Color时,操作失败:
Color pickerColor = new Color(0xff443a49); String testingColorString = pickerColor.toString();
Color newColor;
newColor = testingColorString as Color;
类型’String’不是类型转换中’Color’类型的子类型,其中String来自dart:core颜色来自dart:ui
回答:
在Dart中,as
运算符不允许您更改对象的实际结构,而只是允许您提供提示,表明对象 可能
具有更特定的类型。例如,如果你有一只狗,你可以作为使用动物类,指定你的动物实际上是一个狗(只要对象 是 实际上是狗)。
class Animal {}class Dog extends Animal {}
Animal animal = new Dog();
Dog bob = animal as Dog; // works, since animal is actually a dog
Animal animal2 = new Animal();
Dog bob2 = animal2 as Dog; // fails, since animal2 is actually an Animal
现在,在您提供的示例中,toString
实际上只是创建了当前Color
值的String表示形式。而且,由于这个对象是一个字符串,你不能改变它回Color
用as
。相反,您可以将String解析为一个值并构造一个新Color
对象。
Color color = new Color(0x12345678);String colorString = color.toString(); // Color(0x12345678)
String valueString = colorString.split('(0x')[1].split(')')[0]; // kind of hacky..
int value = int.parse(valueString, radix: 16);
Color otherColor = new Color(value);
以上是 如何将Flutter颜色转换为字符串并转换回颜色 的全部内容, 来源链接: utcz.com/qa/433467.html