Flutter ExpansionPanel 超級(jí)實(shí)用展開(kāi)控件

1.定義集合

int _panelIndex=-1;
List dt = [ {"name": "生鮮", "id":0,"list":[{"name": "水果", "id":11},{"name": "蔬菜", "id":12}, {"name": "禽肉蛋","id":13},
{"name": "豬牛羊肉", "id":14}, {"name": "海鮮水產(chǎn)", "id":15}, {"name": "冷凍食品", "id":16}, {"name": "冷凍食品", "id":17}, ]},
{"name": "食品飲料", "id":1,
"list":[{"name": "食品飲料1", "id":21},{"name": "食品飲料2", "id":22}]},
{"name": "母嬰", "id":2,
"list":[{"name": "母嬰1", "id":31},{"name": "母嬰2", "id":32}]},
{"name": "生活日用","id":3,"list":[{"name": "生活日用1", "id":41},{"name": "生活日用2", "id":42}]},
{"name": "酒類(lèi)","id":4,"list":[{"name": "酒類(lèi)1", "id":51},{"name": "酒類(lèi)2", "id":52}]}];

2.實(shí)現(xiàn)

 body: Column(
    children: <Widget>[
      ExpansionPanelList(
        expansionCallback: (panelIndex,isExpand){
          print(panelIndex);
          setState(() {
            _panelIndex= _panelIndex==panelIndex?-1:panelIndex;
          });
        },
        //一個(gè)集合    上部分標(biāo)題   下部分是list
        children: dt.map((item){
          return  ExpansionPanel(
              headerBuilder: (ctx,isExpand){
                return ListTile(
                  title: Text(item['name']),
                );
              },

              body: new Container(
                alignment: Alignment.center,
                width: double.infinity,
                height: 315.h,
                color: Colors.white,
                child: new ListView.builder(
                    itemCount: item['list'].length,
                    itemBuilder: (BuildContext context, int position) {
                      return Text(item['list'][position]['name']);
                    }),
              ),
              isExpanded: _panelIndex==item['id'],
              canTapOnHeader: true
          );
        }).toList(),
      )
    ],
  ),
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容