Checkbox(
checkColor: Colors.red,
activeColor: Colors.white,
onChanged: (bool value) {
dataOfArray.add(arrayOfId);
var n = dataOfArray.indexOf(arrayOfId);
print("data$n ---OfArray${dataOfArray}---${[arrayOfId]}");
setState(() {
// if (_checkboxval) {
// setState(() {
// _checkboxval = false;
// });
// }else {
// setState(() {
// _checkboxval = true;
// });
// }
if (
//dataOfArray[n]== arrayOfId
dataOfArray.indexOf(arrayOfId) != -1) {
this._checkboxval = value;
print("dataOf///////////Array$dataOfArray");
}
// else this._checkboxval=value;
});
},
//value: arrayOfId[''],
value: this._checkboxval,
);
在这里,我尝试将单个check bocx选择到默认的listview构建器中。
但是它正在选中所有已创建列表视图构建器中的复选框。 如果您遇到此类错误,请提供帮助。
由于我使用Firebase在该特定列表中获取数据的动态列表视图,因此我给该数据提供了复选框,并在特定的复选框中选中了所有复选框。
答案 0 :(得分:0)
您需要先创建一个对象列表,然后再将复选框状态更新为列表并更新状态。
例如:
PODO类:
class ObjectClass {
int id;
bool checkBoxStatus;
Users({this.id, this.checkBoxStatus});
Users.fromJson(Map<String, dynamic> json) {
id = json['id'];
checkBoxStatus = json['check_box_status'];
}
}
班级文件:
列出dataOfArray; //通过api初始化数据或 随便
Checkbox(
checkColor: Colors.red,
activeColor: Colors.white,
onChanged: (bool value) {
setState(() {
dataOfArray[arrayOfId].checkBoxStatus = value;
});
},
value: dataOfArray[arrayOfId].checkBoxStatus,
)
如果有任何疑问,可以询问。