我是新手,因为我遇到了问题.我正在尝试制作扩展面板列表.我能够制作列表,但无法使扩展面板展开或折叠.我正在附加代码.请看一下,让我知道这个问题.
ExpansionPanelList criteria; criteria = new ExpansionPanelList( children: <ExpansionPanel>[ new ExpansionPanel( headerBuilder: schoolheaderBuilder,body: new Text("school"),isExpanded: false,),new ExpansionPanel( headerBuilder: hospitalheaderBuilder,body: new Text("hospital"),new ExpansionPanel( headerBuilder: vaheaderBuilder,body: new Text("va facility"),isExpanded: false),new ExpansionPanel( headerBuilder: restheaderBuilder,body: new Text("Restaurants"),new ExpansionPanel( headerBuilder: crimeheaderBuilder,body: new Text("Crime"),new ExpansionPanel( headerBuilder: commuteheaderBuilder,body: new Text("Commute"),new ExpansionPanel( headerBuilder: incomeBuilder,body: new Text("Household Income"),new ExpansionPanel( headerBuilder: househeaderBuilder,body: new Text("House Value"),isExpanded: false) ],expansionCallback: (int index,bool isExpanded) { isExpanded = !criteria.children[index].isExpanded; },);
解决方法
这是我使用的代码:
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()`enter code here`),//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',style: new TextStyle(fontWeight: FontWeight.bold),) ]) ],); return scaffold; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。