加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

android – Flutter中的扩展面板列表

发布时间:2020-12-14 14:48:44 所属栏目:百科 来源:网络整理
导读:我是新手,因为我遇到了问题.我正在尝试制作扩展面板列表.我能够制作列表,但无法使扩展面板展开或折叠.我正在附加代码.请看一下,让我知道这个问题. ExpansionPanelList criteria;criteria = new ExpansionPanelList( children: ExpansionPanel[ new Expansion
我是新手,因为我遇到了问题.我正在尝试制作扩展面板列表.我能够制作列表,但无法使扩展面板展开或折叠.我正在附加代码.请看一下,让我知道这个问题.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读