class _ContentListWidgetState extends State<ContentListWidget> {
Widget build(BuildContext context) {
return ListView.separated(
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 8.0),
child: Column(children: [
Row(children: [
// 这块报错报错Invalid constant value.dart(invalid_constant)
Text(widget.name,
style: TextStyle(
fontSize: 16.0, fontWeight: FontWeight.bold)),
])
]));
},
separatorBuilder: (context, index) {
return const Divider(
height: 1.0,
color: Colors.grey,
);
},
itemCount: 20);
}
}
解决方法:
Padding 和 Divider 小部件外使用了 const,但是它们接受的参数并不是常量。 在 Dart 中,const
关键字用于创建编译时常量,传递给 Padding 和 Divider 的参数(如 EdgeInsets.symmetric 和
Colors.grey)并不是常量,因此不能用 const 修饰。
去除这些不必要的 const
class _ContentListWidgetState extends State<ContentListWidget> {
@override
Widget build(BuildContext context) {
return ListView.separated(
itemBuilder: (context, index) {
return Padding(
padding:
const EdgeInsets.symmetric(horizontal: 10.0, vertical: 8.0),
child: Column(children: [
Row(children: [
Text(widget.name,
style: const TextStyle(
fontSize: 16.0, fontWeight: FontWeight.bold)),
])
]));
},
separatorBuilder: (context, index) {
return const Divider(
height: 1.0,
color: Colors.grey,
);
},
itemCount: 20);
}
}