【发布时间】:2020-07-01 00:32:09
【问题描述】:
我的 Drawer 小部件中有一个 ExpansionTile。当我展开这个项目时,它会自动在上面和下面添加一条分隔线。我想要这些分隔线永久。
所以我想知道如何始终显示 ExpansionTile 的分隔线(展开和未展开),或者我可以添加自己的分隔线并告诉 ExpansionTile 从不显示分隔线。
这可能吗?谢谢。
【问题讨论】:
标签: flutter
我的 Drawer 小部件中有一个 ExpansionTile。当我展开这个项目时,它会自动在上面和下面添加一条分隔线。我想要这些分隔线永久。
所以我想知道如何始终显示 ExpansionTile 的分隔线(展开和未展开),或者我可以添加自己的分隔线并告诉 ExpansionTile 从不显示分隔线。
这可能吗?谢谢。
【问题讨论】:
标签: flutter
您可以通过将 ExpansionTile 小部件包裹在 Theme Widget 中来隐藏分隔线,
添加主题小部件后,您的代码将如下所示
Theme(
data: Theme.of(context).copyWith(dividerColor: Colors.transparent),
child:ExpansionTile(
title:...,
children:[],
),
),
检查这个Github Issue
【讨论】:
@RJB,我遇到了同样的问题,我解决了用一列包装 ExpansionTile,如下所示:
Theme(
data: Theme.of(context).copyWith(dividerColor: Colors.transparent),
child: Column(
children: [
ExpansionTile(
title: Text(
'My title',
style: const TextStyle(
fontWeight: FontWeight.bold,
),
),
trailing: Icon(
_showContent
? Icons.expand_less_rounded
: Icons.expand_more_rounded,
),
onExpansionChanged: (bool expanded) {
setState(() => _showContent = expanded);
},
children: <Widget>[
Text('My content'),
],
),
const Divider(
color: Colors.amber,
thickness: 1,
height: 0,
)
],
),
);
我知道它不漂亮,但我找不到可以对其外观的各个方面进行个性化的扩展组件。
【讨论】: