zoukankan      html  css  js  c++  java
  • expansiontile list

    代码:

    import 'package:flutter/material.dart';

    class ExpansionPaneListDemo extends StatefulWidget {


    @override
    _ExpansionPaneListDemoState createState() => _ExpansionPaneListDemoState();
    }

    class _ExpansionPaneListDemoState extends State<ExpansionPaneListDemo> {


    List<int> mlist;//
    List<ExpandStateBean> expandStateList;

    _ExpansionPaneListDemoState(){//初始化
    mlist = new List();
    expandStateList = new List();
    for (var i = 0; i < 10; i++) {
    mlist.add(i);
    expandStateList.add(ExpandStateBean(i, false));
    }
    }


    _setCurrentIndex(int index,isExpand){
    setState(() {
    expandStateList.forEach((item){
    if (item.index == index) {
    item.isOpen = !isExpand;
    }
    });
    });
    }

    @override
    Widget build(BuildContext context) {
    return Scaffold(
    appBar: AppBar(title: Text('expansion List')),
    body: SingleChildScrollView(//

    child: ExpansionPanelList(//必须放在滚动控件下
    expansionCallback: (index,bol){
    _setCurrentIndex(index, bol);
    },
    children: mlist.map((index){
    return ExpansionPanel(
    headerBuilder: (context,isExpanded){
    return ListTile(//没展开的数据
    title: Text('No.$index'),
    );
    },
    body: ListTile(//展开的数据
    title: Text('xx $index'),
    ),
    isExpanded: expandStateList[index].isOpen
    );

    }).toList(),
    ),

    ),
    );
    }
    }


    class ExpandStateBean{
    var isOpen;
    var index;
    ExpandStateBean(this.index,this.isOpen);

    }
  • 相关阅读:
    Wintellect的Power Collections库
    rabbitMQ的几种工作模式
    解决死锁问题
    项目#editormd 的使用
    spring cloud篇#1
    科学#老鼠和毒药
    #杂记#实现一个简单的tomcat
    #栈#leetcode856.括号的分数
    #栈#单调栈#leetCode94.验证栈序列
    #树#遍历#LeetCode37.序列化二叉树
  • 原文地址:https://www.cnblogs.com/pp-pping/p/12188927.html
Copyright © 2011-2022 走看看