修改 Flutter 默认的 ExpansionTile children vertical padding

Modifying the default ExpansionTile children vertical padding Flutter

如何减少 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,
                ),
        ],
    ),
),

通过在每个 ExpansionTile 之前添加一个 ListTileTheme 并使 dense: true,
它会让Padding更多"Reasonable"

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,
                ),
          ),
        ],
    ),
)