Flutter中的扩展面板列表

我是新手,我陷入了一个问题。我正在尝试列出扩展面板。我能够列出列表,但无法使扩展面板展开或折叠。我正在附加代码。请看一下,让我知道这个问题。

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"),

isExpanded: false),

new ExpansionPanel(

headerBuilder: crimeheaderBuilder,

body: new Text("Crime"),

isExpanded: false),

new ExpansionPanel(

headerBuilder: commuteheaderBuilder,

body: new Text("Commute"),

isExpanded: false),

new ExpansionPanel(

headerBuilder: incomeBuilder,

body: new Text("Household Income"),

isExpanded: false),

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(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;

}

}

以上是 Flutter中的扩展面板列表 的全部内容, 来源链接: utcz.com/qa/407329.html

回到顶部