Expansion Panel List in Flutter. Use the below flutter example code to add Expansion Panel List in Flutter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | class Criterias extends StatefulWidget { CriteriaState createState() => new CriteriaState(); } class NewItem { bool isExpanded; final String header; final Widget body; final Icon iconpic; NewItem(this.isExpanded, this.header, this.body, this.iconpic); } double discretevalue = 2.0; double hospitaldiscretevalue = 25.0; class CriteriaState extends State<Criterias> { List<NewItem> items = <NewItem>[ new NewItem( false, 'Schools', new Padding( padding: new EdgeInsets.all(20.0), child: new Column( children: <Widget>[ //put the children here ]) ),new Icon(Icons.add)), //give all your items here ]; ListView List_Criteria; Widget build(BuildContext context) { List_Criteria = new ListView( children: [ new Padding( padding: new EdgeInsets.all(10.0), child: new ExpansionPanelList( expansionCallback: (int index, bool isExpanded) { setState(() { items[index].isExpanded = !items[index].isExpanded; }); }, children: items.map((NewItem item) { return new ExpansionPanel( headerBuilder: (BuildContext context, bool isExpanded) { return new ListTile( leading: item.iconpic, title: new Text( item.header, textAlign: TextAlign.left, style: new TextStyle( fontSize: 20.0, fontWeight: FontWeight.w400, ), )); }, isExpanded: item.isExpanded, body: item.body, ); }).toList(), ), ) ], ); Scaffold scaffold = new Scaffold( appBar: new AppBar( title: new Text("Criteria Selection"), ), body: List_Criteria, persistentFooterButtons: <Widget>[ new ButtonBar(children: <Widget>[ new FlatButton( color: Colors.blue, onPressed: null, child: new Text( 'Apply', textAlign: TextAlign.left, style: new TextStyle(fontWeight: FontWeight.bold), ), ) ]) ], ); return scaffold; } } |
If you like this question & answer and want to contribute, then write your question & answer and email to freewebmentor[@]gmail.com. Your question and answer will appear on FreeWebMentor.com and help other developers.