How to Handle Dynamically Created CheckBox List In Flutter?
A ListTile Widget with a CheckBox Widget. In other words, we can say that a checkbox with a label. So in this article, We will learn about How to Handle Dynamically Created CheckBox List In Flutter?
How to Handle Dynamically Created CheckBox List In Flutter?
Users can make use of CheckBoxList Tile Class for the same. Consider a code snippet like the below:
import 'package:flutter/material.dart'; class Demo extends StatefulWidget { @override DemoState createState() => new DemoState(); } class DemoState extends State<Demo> { Map<String, bool> values = { 'foo': true, 'bar': false, }; @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar(title: new Text('CheckboxListTile demo')), body: new ListView( children: values.keys.map((key) { return CheckboxListTile( title: Text(key), value: values[key], onChanged: (bool? value) { setState(() { values[key] = value; }); }, ); }).toList(), ), ); } } void main() { runApp(new MaterialApp(home: new Demo(), debugShowCheckedModeBanner: false)); }
The above code will give us output like the below:
When the user needs a list of all selected CheckBox Widget. User can Consider a code snippet like below:
import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return new MaterialApp( title: 'Flutter Demo', theme: new ThemeData( primarySwatch: Colors.blue, ), home: new MyHomePage(title: 'Multi-Select & Unselect Checkbox in Flutter'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => new _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { List _selecteCategorys = List(); Map<String, dynamic> _categories = { "responseCode": "1", "responseText": "List categories.", "responseBody": [ {"category_id": "5", "category_name": "Barber"}, {"category_id": "3", "category_name": "Carpanter"}, {"category_id": "7", "category_name": "Cook"} ], "responseTotalResult": 3 // Total result is 3 here becasue we have 3 categories in responseBody. }; void _onCategorySelected(bool selected, category_id) { if (selected == true) { setState(() { _selecteCategorys.add(category_id); }); } else { setState(() { _selecteCategorys.remove(category_id); }); } } @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title: new Text(widget.title), ), body: ListView.builder( itemCount: _categories['responseTotalResult'], itemBuilder: (BuildContext context, int index) { return CheckboxListTile( value: _selecteCategorys .contains(_categories['responseBody'][index]['category_id']), onChanged: (bool selected) { _onCategorySelected(selected, _categories['responseBody'][index]['category_id']); }, title: Text(_categories['responseBody'][index]['category_name']), ); }), ); } }
Users can also handle the grouped_buttons plugin which manages RadioButton as well as CheckBox Widget. Code Snippet will look like below:
CheckboxGroup( labels: <String>[ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", ], disabled: [ "Wednesday", "Friday" ], onChange: (bool isChecked, String label, int index) => print("isChecked: $isChecked label: $label index: $index"), onSelected: (List<String> checked) => print("checked: ${checked.toString()}"), ),
We will get output like below:
Conclusion :
In this article, We have been through How to Handle Dynamically Created CheckBox List In Flutter?
Thanks for Reading !!!
Do share your Suggestion/Feedback for the same.
FlutterAgency.com is our portal Platform dedicated to Flutter Technology and Flutter Developers. The portal is full of cool resources from Flutter like Flutter Widget Guide, Flutter Projects, Code libs and etc.
FlutterAgency.com is one of the most popular online portal dedicated to Flutter Technology and daily thousands of unique visitors come to this portal to enhance their knowledge on Flutter.
Contemporary ventures
Recent blog
ready to get started?
Fill out the form below and we will be in touch soon!
"*" indicates required fields