如何解决Flutter:将MaterialColor转换为字符串,然后再转换回MaterialColor
我有与我的API通信的应用。我需要在flutter应用程序中选择MaterialColor并将其发送到我的API,然后再从API获取它并在应用程序中使用它。当我将其发送到我的API时,它看起来像这样git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
,但以后无法使用,因为无法将这样的String转换为Color。
有没有简单的方法可以重用发送到API的颜色?
谢谢。
解决方法
尝试一下,为我工作。
首先创建隐式十六进制到材料颜色的类
class HexColor extends Color {
static int _getColorFromHex(String hexColor) {
return int.parse(hexColor,radix: 16);
}
HexColor(final String hexColor) : super(_getColorFromHex(hexColor));
}
将材料颜色转换为十六进制并发送到您的API
Color materialColor = Colors.blue;
print(materialColor); //MaterialColor(primary value: Color(0xff2196f3))
final hexColor = materialColor.value.toRadixString(16); //convert to hex
//send this value hexColor to your server
......
print(hexColor); // ff2196f3
//how to covert back to material color
print(HexColor(hexColor)); //Color(0xff2196f3)
如何使用/ example从API获取颜色
Container(
height:300,width:300,color:HexColor(<color_from_API>),)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。