Flutter问题:无法修改列表项的文本粗细
问题原因及解决方案
错误原因
你遇到的「Error: Invalid constant value」是因为**const修饰的对象必须完全由编译时常量构成**。你代码里的TextStyle加了const,但fontWeight的取值依赖item.boldTitle——这个值是运行时才会确定的动态数据,不属于编译时常量,所以const校验不通过,直接报错。
修复代码
把TextStyle前面的const删掉即可,修改后的代码如下:
title: Text( item.name, style: TextStyle( color: Colors.black, fontWeight: item.boldTitle ? FontWeight.bold : FontWeight.normal, ), ),
补充说明
只有当TextStyle的所有属性都是固定不变的编译时常量时,才适合用const修饰它来做性能优化。只要有任何一个属性依赖运行时的动态数据(比如这里的item.boldTitle),就不能给TextStyle加const。
内容的提问来源于stack exchange,提问作者fluttergogo
相关产品推荐
相关产品推荐

