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

Flutter测验应用:点击选项卡片后颜色显示异常问题排查

问题原因及修复方案
  • 核心错误:判断选项是否正确时,错误地将选项的字符串key与布尔值true做比较。由于字符串和布尔值类型不匹配,这个判断永远返回false,导致无论选中正确还是错误选项,都会显示错误颜色(kFalseAnswerColor)。

    比如选中正确选项'4'时,代码执行'4' == true,结果必然是false,所以触发错误颜色分支。

  • 正确逻辑实现:应该通过选项的key,从options字典中获取对应的布尔值,以此判断选项是否正确。

错误代码片段

color: isClicked
    ? _questions[index].options.keys.toList()[i] == true
        ? kCorrectAnswerColor : kFalseAnswerColor
    : kPrimaryColor,

修正后的代码

可以先缓存当前选项,让代码更简洁:

final currentOption = _questions[index].options.keys.toList()[i];
// ...
OptionCard(
  option: currentOption,
  color: isClicked
      ? _questions[index].options[currentOption] == true
          ? kCorrectAnswerColor
          : kFalseAnswerColor
      : kPrimaryColor,
  onTap: _changeColor,
),

这样就能正确获取选项对应的对错状态,选中正确选项时会显示kCorrectAnswerColor,错误选项显示kFalseAnswerColor。

内容的提问来源于stack exchange,提问作者carlosManta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:52:07