You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:33:18