flutter控件之ExpansionPanelList

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
import 'package:flutter/material.dart';
class LearnExpansionPanelList extends StatefulWidget{
  @override
  State<StatefulWidget> createState() {
    return new _LearnExpansionPanelList();
  }
}
class _LearnExpansionPanelList extends State<LearnExpansionPanelList>{
  var currentPanelIndex=-1;//设置-1默认全部闭合
  List<int> mList;
  _LearnExpansionPanelList(){
    mList=new List();
    for(int i=0;i<5;i++){
      mList.add(i);
    }
  }
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new SingleChildScrollView(
        child:new Column(
          children: <Widget>[
            new Text('这是一个自带的,样子挺丑的吧'),
            new ExpansionPanelList(
              expansionCallback: (panelIndex,isExpanded){
                setState(() {
                  currentPanelIndex=(currentPanelIndex!=panelIndex?panelIndex:-1);
                });
              },
              children: mList.map((i){
                return new ExpansionPanel(
                  headerBuilder: (context,isExpanded){
                    return new ListTile(
                      title: new Text('这是标题$i'),
                    );
                  },
                  body:new Padding(
                    padding: EdgeInsets.all(30.0),
                    child:new ListBody(
                      children: <Widget>[
                        new Text('这是标题$i的内容'),
                      ],
                    ),
                  ),
                  isExpanded: currentPanelIndex==i,
                );
              }).toList(),
            ),
            new Text('拉一个好看点的吧,类似qq分组之类的'),
//            new ListView.builder(
//                itemBuilder: (BuildContext context, int index){
//                  return new ListTile(
//                    leading: new Icon(Icons.add),
//                    title: new Text('111'),
//                  );
//                },
//              itemCount: 1,
//            ),
          ],
        ),
      ),
    );
  }
}

  

posted @   CrossPython  阅读(2279)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示