ExpansionPanelList参数
const ExpansionPanelList({
Key key,
this.children = const <ExpansionPanel>[],//子部件
this.expansionCallback,
this.animationDuration = kThemeAnimationDuration,
})
ExpansionPanel参数
ExpansionPanel({
@required this.headerBuilder, //头部
@required this.body,//主题
this.isExpanded = false,
this.canTapOnHeader = false,
})
//定义一个收缩面板的类型;
class IsExpandedItem{
final String headerTitle;//标题
Widget body;//收缩面板描述
bool isExpanded;//是否收缩
int index;//下标用来排它
IsExpandedItem({this.headerTitle,this.body,this.isExpanded,this.index});
}
//定义收缩面板的子部件
List<IsExpandedItem> _isExpandedItems;
void initState() {
// TODO: implement initState
//初始化收缩面板的子部件
_isExpandedItems=List<IsExpandedItem>.generate(10, (int index){
return IsExpandedItem(
index: index,
headerTitle: '第$index个面板',
body:Container(
padding: EdgeInsets.all(16.0),
width: double.infinity,
child: Text('第$index个收缩面板'),
),
isExpanded: false,
);
});
super.initState();
}
ExpansionPanelList(
expansionCallback: (int index,bool isExpanded){
//实现收缩面板排它
_isExpandedItems.forEach((item){
if(item.index==index){
//取反,经典取反方法
print(index);
setState(() {
item.isExpanded=!isExpanded;
});
}else{
setState(() {
item.isExpanded=false;
});
}
});
},
children: _isExpandedItems.map((IsExpandedItem item){
return ExpansionPanel(
isExpanded: item.isExpanded,
body: item.body,
headerBuilder: (BuildContext context,bool isExpanded){
return item.body;
}
);
}).toList(),
),
文章版权声明:除非注明,否则均为
譬如朝露_策温技术开发工作室博客原创文章,转载或复制请以超链接形式并注明出处。
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接