Flutter 3.27.0下不使用废弃成员实现MaterialColor生成
Flutter 3.27.0 废弃API替代:生成MaterialColor的等效函数
在Flutter 3.27.0版本中,Color类的.red、.green、.blue、.value成员已被标记为废弃,以下是移除这些废弃成员后的等效函数:
// 从普通颜色生成MaterialColor MaterialColor materialColor(Color thisColor) { final int red = thisColor.redChannel; final int green = thisColor.greenChannel; final int blue = thisColor.blueChannel; final int alpha = thisColor.alphaChannel; // 计算主色的ARGB值,替代原thisColor.value final int primaryValue = (alpha << 24) | (red << 16) | (green << 8) | blue; final Map<int, Color> shades = { 50: Color.fromRGBO(red, green, blue, .1), 100: Color.fromRGBO(red, green, blue, .2), 200: Color.fromRGBO(red, green, blue, .3), 300: Color.fromRGBO(red, green, blue, .4), 400: Color.fromRGBO(red, green, blue, .5), 500: Color.fromRGBO(red, green, blue, .6), 600: Color.fromRGBO(red, green, blue, .7), 700: Color.fromRGBO(red, green, blue, .8), 800: Color.fromRGBO(red, green, blue, .9), 900: Color.fromRGBO(red, green, blue, 1), }; return MaterialColor(primaryValue, shades); }
替换说明
- 用
redChannel/greenChannel/blueChannel替代原废弃的red/green/blue成员 - 通过
alphaChannel和三通道值手动计算ARGB整数,替代原thisColor.value(若value未实际废弃,也可直接保留thisColor.value,功能一致)
内容的提问来源于stack exchange,提问作者JRose
相关产品推荐
相关产品推荐

