开发过程中使用到ListTile,但是默认的 leading 和 title之的间隔太宽了,寻找了一些可用的解决办法
一、通过Transform组件
ListTile(
leading: Icon(icon),
title: Transform(
transform: Matrix4.translationValues(-16, 0.0, 0.0),
child: Text("Title text",
style: TextStyle(fontSize: 18, color: textPrimary)),
),
);
或
ListTile(
leading: Icon(icon),
title: Container(
transform: Matrix4.translationValues(padding - 35, 0.0, 0.0),
child: title,
),
);
二、结合Align和dense
Card(
child: ListTile(
leading: Icon(
Icons.call,
color: Colors.teal,
size: 20
),
title: Align(
child: Text(
"xxxxxxxxxx"
),
alignment: Alignment(-1.3, 0),
),
dense: true,
)
三、构建自己的容器
Container(
padding: new EdgeInsets.symmetric(vertical: 6.0, horizontal: 6.0),
margin: EdgeInsets.symmetric(vertical: 6.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.0),
border: Border.all(color: Colors.black),
),
child: Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
IconButton(
icon: Icon(myLeadingIcon),
onPressed: () => {},
),
Padding(padding: EdgeInsets.only(left: 20.0)),
Text(_myTitle),
],
),
...