文档:https://api.flutter.dev/flutter/material/ExpansionPanel-class.html
demo:
import 'package:flutter/material.dart'; class ExpansionPanelItem { final String headerText; final Widget body; bool isExpanded; ExpansionPanelItem({ this.headerText, this.body, this.isExpanded, }); } class ExpansionPanelDemo extends StatefulWidget { @override _ExpansionPanelDemoState createState() => _ExpansionPanelDemoState(); } class _ExpansionPanelDemoState extends State<ExpansionPanelDemo> { List<ExpansionPanelItem> _expansionPanelItems; @override void initState() { super.initState(); _expansionPanelItems = <ExpansionPanelItem>[ ExpansionPanelItem( headerText: 'Panel A', body: Container( padding: EdgeInsets.all(16.0), width: double.infinity, child: Text('Content for Panel A.'), ), isExpanded: false, ), ExpansionPanelItem( headerText: 'Panel B', body: Container( padding: EdgeInsets.all(16.0), width: double.infinity, child: Text('Content for Panel B.'), ), isExpanded: false, ), ExpansionPanelItem( headerText: 'Panel C', body: Container( padding: EdgeInsets.all(16.0), width: double.infinity, child: Text('Content for Panel C.'), ), isExpanded: false, ), ]; } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('ExpansionPanelDemo'), elevation: 0.0, ), body: Container( padding: EdgeInsets.all(16.0), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ ExpansionPanelList( expansionCallback: (int panelIndex, bool isExpanded) { setState(() { _expansionPanelItems[panelIndex].isExpanded = !isExpanded; }); }, children: _expansionPanelItems.map( (ExpansionPanelItem item) { return ExpansionPanel( isExpanded: item.isExpanded, body: item.body, headerBuilder: (BuildContext context, bool isExpanded) { return Container( padding: EdgeInsets.all(16.0), child: Text( item.headerText, style: Theme.of(context).textTheme.title, ), ); }, ); } ).toList(), ), ], ), ), ); } }
效果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。