在我正在构建的应用程序中,我添加了人员姓名,您可以在 peopleCheck 属性中看到这些姓名。 现在我想制作一个新列表,如果他是否在这里,每个人都将包括一个布尔值。 (false 不在这里,反之亦然( 我声明了一个新列表"chk1"以及为每个人填写的内容作为默认 false,我想使整个列表与人员检查列表的长度相同。 我该怎么做? 我尝试使用"widget.peopleCheck.length((",但它返回两个错误。 1. 在初始值设定项中只能访问静态成员。 2.表达式不计算函数,因此无法调用。
提前谢谢。
import 'package:flutter/material.dart';
class PersonCheck extends StatefulWidget {
final List<String> peopleCheck;
PersonCheck({Key key, this.peopleCheck}) : super(key: key);
//PersonCheck(this.peopleCheck);
@override
_PersonCheckState createState() => _PersonCheckState();
}
class _PersonCheckState extends State<PersonCheck> {
List<bool> chk1 =List.filled(widget.peopleCheck.length(), false);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text(
'People Now',
style: TextStyle(fontSize: 30),
),
),
body: ListView.builder(
itemCount: this.widget.peopleCheck.length,
itemBuilder: (context, value) {
return Card(
color: Colors.amberAccent[200],
elevation: 3,
child: Container(
child: ListTile(
leading: Text(value.toString()),
title: Text(
widget.peopleCheck[value],
),
trailing: Checkbox(
value: chk1[value],
onChanged: (bool val) {}, //(bool val) => setState(() => chk1[value] = val),
),
),
),
);
},
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
floatingActionButton: FloatingActionButton(
onPressed: () {},
child: Icon(Icons.check),
),
);
}
}
/*
for (int i=0; i<widget.peopleCheck.length();i++){
}
*/
长度是列表的属性,因此您可以执行此操作:
widget.peopleCheck.length
您收到错误,因为长度不是函数
您需要访问构建方法中的小部件,您可以这样做:
List<bool> chk1;
Widget build(BuildContext context) {
chk1 = List.filled(widget.peopleCheck.length, false);
}