Я использую функцию для динамического создания списка флажков, функция принимает строку и логическое значение и возвращает CheckboxListTile, например:
class checkGen extends StatefulWidget {
checkGen(this.values);
Map<String, bool> values={};
@override
checkGenState createState() => new checkGenState();
}
class checkGenState extends State<checkGen> {
@override
Widget build(BuildContext context) {
return Column(
children: this.widget.values.keys.map((String key) {
return new CheckboxListTile(
title: new Text(key),
value: this.widget.values[key],
onChanged: (bool value) {
setState(() {
this.widget.values[key] = value;
});
},
);
}).toList(),
);
}
}
И тогда я могу вызватьфункция позже, предоставляя переменную с картой, такую как:
Map<String, bool> valuesExample = {
'One': false,
'Two': false,
'Three': false,
'Four': true
};
new checkGen(valuesExample),
, которая будет возвращать следующее:
Но я не уверен, как бы я получил значение / состояние этих отдельных флажков (true / false), чтобы я мог отправить эти данные в свою базу данных Firebase, я попытался отладить и обнаружил, что состояние каждого флажка действительно меняется,но только внутри самой функции, а не там, где я ее создаю.Я не слишком опытен с Флаттером или с программированием в целом, поэтому я не мог понять это самостоятельно.