这里有一个完整的例子,说明如何制作它以及如何将这个价值结合在一起
Map 是 Key-Value 对中的数据集合。地图中的数据可以通过其关联的键轻松访问。我们将创建一个包含字符串和布尔数据的 Map 数组。字符串为 Checkbox 的名称,Boolean 用于判断哪个复选框被选中。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
centerTitle: true,
backgroundColor: Colors.deepPurple[400],
title: Text("Multiple Checkbox Dynamically"),
),
body: SafeArea(
child : Center(
child:DynamicallyCheckbox(),
)
)
),
);
}
}
class DynamicallyCheckbox extends StatefulWidget {
@override
DynamicallyCheckboxState createState() => new DynamicallyCheckboxState();
}
class DynamicallyCheckboxState extends State {
Map<String, bool> List = {
'Egges' : false,
'Chocolates' : false,
'Flour' : false,
'Fllower' : false,
'Fruits' : false,
};
var holder_1 = [];
getItems(){
List.forEach((key, value) {
if(value == true)
{
holder_1.add(key);
}
});
// Printing all selected items on Terminal screen.
print(holder_1);
// Here you will get all your selected Checkbox items.
// Clear array after use.
holder_1.clear();
}
@override
Widget build(BuildContext context) {
return Column (children: <Widget>[
RaisedButton(
child: Text(" Get Checked Checkbox Values "),
onPressed: getItems,
color: Colors.pink,
textColor: Colors.white,
splashColor: Colors.grey,
padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
),
Expanded(
child :
ListView(
children: List.keys.map((String key) {
return new CheckboxListTile(
title: new Text(key),
value: List[key],
activeColor: Colors.deepPurple[400],
checkColor: Colors.white,
onChanged: (bool value) {
setState(() {
List[key] = value;
});
},
);
}).toList(),
),
),]);
}
}
单击“获取选中的复选框值”按钮,您将获得输出
flutter: [Egges, Chocolates, Fllower, Fruits]
发件人:https://blog.bajarangisoft.com/blog/how-to-create-multiple-checkbox-dynamically-in-flutter