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

    }
  • 相关阅读:
    laravel数据库配置
    mysql中utf8和utf8mb4区别
    laravel中artisan的用法
    laravel项目composer安装
    Linux 文件描述符
    Centos 7/8 SELinux
    Centos 7/8 高级磁盘管理技术
    Centos 7/8 搭建NFS Server
    Centos 7/8 日志管理
    Centos 7/8 Chronyd时间同步
  • 原文地址:https://www.cnblogs.com/pp-pping/p/12188927.html
Copyright © 2011-2022 走看看