我的 Drawer 小部件中有一个 ExpansionTile。当我展开这个项目时,它会自动在上方和下方添加一条分隔线。我想要这些分隔线永久。
所以我想知道如何始终显示 ExpansionTile 的分隔线(展开和未展开),或者我可以添加我自己的分隔线并告诉 ExpansionTile 从不显示分隔线。
这可能吗?谢谢。
小智 30
您可以通过在 Theme Widget 中包裹 ExpansionTile 小部件来隐藏分隔线,
添加主题小部件后,您的代码将如下所示
Theme:(
data: Theme.of(context).copyWith(dividerColor: Colors.transparent),
child:ExpansionTile(
title:...,
children:[],
),
),
Run Code Online (Sandbox Code Playgroud)
检查这个Github 问题
小智 24
另一种选择是,ExpansionTile您可以直接将形状传递给以下组件,而不用主题包装ExpansionTile小部件:
ExpansionTile(
// ...
shape: Border(),
)
Run Code Online (Sandbox Code Playgroud)
小智 6
@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,
)
],
),
);
Run Code Online (Sandbox Code Playgroud)
我知道它不漂亮,但我找不到可以个性化其外观各个方面的扩展组件。
| 归档时间: |
|
| 查看次数: |
3271 次 |
| 最近记录: |