我正在尝试将一些城市列表添加到带有复选框的对话框中,以便我需要实现多次单击项目。我正在尝试做的事情如下所示。
onPressed
从按钮调用 Rest Service 并在成功结果时我只显示一个对话框
void showCityDialog(BuildContext context) {
SimpleDialog dialog = new SimpleDialog(
title: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Text(
"CITIES",
style: TextStyle(fontSize: 18.0, color: Colors.black),
textAlign: TextAlign.center,
),
new RaisedButton(
onPressed: () {print("clicked");},
color: Color(0xFFfab82b),
child: new Text(
"Done",
style: TextStyle(color: Colors.white),
),)],),
children: <Widget>[
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
new Container(
constraints: BoxConstraints(maxHeight: 500.0),
child: ListView.builder(
scrollDirection: Axis.vertical,
itemCount: cityData.length,
itemBuilder: (context, position) {
return new CheckboxListTile(
value: checkboxValueCity,
onChanged: (bool value) {
setState(() {
checkboxValueCity = value;
});
},
activeColor: Color(0xFFfab82b),
dense: true,
title: Text(
cityData[position].city_name,
style: TextStyle(fontSize: 16.0, color: Colors.black),
),);},),),],)],);
showDialog(
context: context,
builder: (BuildContext context) {
return dialog;
});
}
checkboxValueCity
是类中的布尔变量,单击 chekboxListItem 我需要将复选框值更新为已选中和未选中。同时需要将该项目添加/删除到也在该类内部的列表中。
但在我的代码中,复选框并未在每次单击时引用,但当我关闭该框并再次打开它时,复选框会被选中。那么我如何从图块中获得多次单击以及如何从对话框返回列表?