如何从ExpansionTile的标头中删除默认填充

时间:2019-02-15 18:06:21

标签: flutter

默认情况下, ExpansionTile的标头中有16个水平填充,因为它是 ListTile 且具有

/// If null, `EdgeInsets.symmetric(horizontal: 16.0)` is used.
    final EdgeInsetsGeometry contentPadding;

所以我们左右有空格 enter image description here

如何删除它们?

4 个答案:

答案 0 :(得分:0)

ListTile 的样式为 ListTileTheme ,我们可以像这样为子ListTile添加自己的样式

ListTileTheme(
            contentPadding: EdgeInsets.all(0),
            child: ExpansionTile(...)
)

答案 1 :(得分:0)

要自定义扩展图块窗口小部件而无需太多填充和间距,您可以进行以下更改

ListTileTheme(
        contentPadding: EdgeInsets.all(0),
        dense: true //removes additional space vertically
        child: ExpansionTile(...))

如果需要删除尾随空格,则可以使用https://stackoverflow.com/a/64162389/12661107中提到的修改后的Expansiontile小部件。

答案 2 :(得分:0)

ExpansionTile 有 tilePadding 属性,你可以设置为

tilePadding: EdgeInsets.only(left: 0)

答案 3 :(得分:-1)

似乎当前的Flutter版本(1.20.3)无法实现。

有人提出了一项功能,但已关闭: https://github.com/flutter/flutter/issues/57577

所以现在有两个选择: