修改默认的 ExpansionTile 子项垂直填充 Flutter
Posted
技术标签:
【中文标题】修改默认的 ExpansionTile 子项垂直填充 Flutter【英文标题】:Modifying the default ExpansionTile children vertical padding Flutter 【发布时间】:2020-09-12 13:03:05 【问题描述】:如何减少 ExpansionTile 子级之间的垂直填充:
这是内联小部件代码:
Expanded(
child: ListView(
padding: EdgeInsets.all(0.0) ,
primary: true,
shrinkWrap: true,
children: <Widget>[
ExpansionTile(
title: Text("Categories"),
children: [
CheckboxListTile(
controlAffinity: ListTileControlAffinity.trailing,
title: Text( "Cars", maxLines: 1, ),
),
CheckboxListTile(
controlAffinity: ListTileControlAffinity.trailing,
title: Text("Veichle", maxLines: 1, ),
),
],
initiallyExpanded: true,
),
],
),
),
【问题讨论】:
【参考方案1】:通过在每个 ExpansionTile
之前添加一个 ListTileTheme
并制作 dense: true,
它会让 Padding 更“合理”
Expanded(
child: ListView(
padding: EdgeInsets.all(0.0) ,
primary: true,
shrinkWrap: true,
children: <Widget>[
ListTileTheme(
dense: true,
child: ExpansionTile(
title: Text("Categories"),
children: [
CheckboxListTile(
controlAffinity: ListTileControlAffinity.trailing,
title: Text( "Cars", maxLines: 1, ),
),
CheckboxListTile(
controlAffinity: ListTileControlAffinity.trailing,
title: Text("Veichle", maxLines: 1, ),
),
],
initiallyExpanded: true,
),
),
],
),
)
【讨论】:
以上是关于修改默认的 ExpansionTile 子项垂直填充 Flutter的主要内容,如果未能解决你的问题,请参考以下文章
我想要第一个 ExpansionTile 的项目默认是打开的。我想当我单击另一个项目时,当前项目将关闭。我该怎么做?