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

Flutter/Dart中基于List<String>实现If Else判断控制文本颜色

问题原因
  • 颜色值透明度配置错误:Flutter的Color类接收的是0xAARRGGBB格式的32位数值,前两位AA代表透明度,你设置的绿色为0x00FF00,透明度位是00代表完全透明,这是文本组件消失的核心原因。
  • 函数传参错误:调用_getMyColor时你传入了整个status列表,而非当前索引对应的单个状态字符串status[index],导致判断逻辑永远无法匹配Available的条件分支。
  • Text组件语法错误:style是Text的构造参数,需要放在Text的括号内部,你当前的写法把style放到了Text外部,属于语法错误。
修正方案

首先修正颜色判断函数:

List<String> status = ['Available','Not Available','Available','Available','Not Available'];

// 补充参数类型、返回值类型,修正颜色透明度配置
Color _getMyColor(String currentStatus){
   if(currentStatus == "Available"){
     return const Color(0xFF00FF00); // 透明度设为FF(完全不透明)的绿色
   } else {
     return const Color(0xFFFF0000); // 透明度设为FF的红色
   }
}

再修正ListView.builder内的调用代码:

// 将style放入Text构造参数内,传入当前索引对应的状态值
Text(
  status[index],
  style: TextStyle(color: _getMyColor(status[index])),
)

内容的提问来源于stack exchange,提问作者Muhammad Rizky Nur Fajrie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:24:04