我想缩小列表之间的距离,但是它不起作用。我唯一的选择就是扩大差距:Sizedbox,spacer,divider
代码:
body: Container(
child: Column(
children: <Widget>[
_mainList(Icon(Icons.cached), "Erste", "21:13 pm"),
_mainList(Icon(Icons.cached), "Zweite", "21:13 pm"),
_mainList(Icon(Icons.cached), "Dritte", "21:13 pm"),
_mainList(Icon(Icons.cached), "Vierte", "21:13 pm"),
]
)
)
Widget _mainList(Icon symbol, String name, String time){
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 30),
child: ListTile(
leading: symbol,
title: Text(name, textScaleFactor: 1.2),
trailing: Text(time, textScaleFactor: 1.3),
),
);
}
答案 0 :(得分:1)
class MyWidget extends StatelessWidget {
final List<String> _names = ["Erste","Zweite","Dritte","Vierte"];
final List<String> _dates = ["21:13 pm","21:13 pm","21:13 pm","21:13 pm"];
@override
Widget build(BuildContext context) {
return Container(
child: ListView.builder(
shrinkWrap: true,
itemBuilder: (BuildContext context, int index){
return ListTile(
contentPadding: EdgeInsets.symmetric(vertical:0.0),
title: Text(_names[index]),
leading: Icon(Icons.cached),
trailing: Text(_dates[index]),
);
}
)
);
}
}
答案 1 :(得分:0)
这是因为ListTile
拥有自己的Padding
。您可以尝试更改Padding
中的ListTile
。如果还不够的话,您应该创建自己的Widget
而无需垂直填充
您始终可以转到ListTile
的源代码并对其进行复制和自定义。
答案 2 :(得分:0)
contentPadding
中的 ListTile
默认为EdgeInsets.symmetric(horizontal: 16.0)
。因此它从顶部到底部都有填充。您可以按照以下方式进行更改:
ListTile(
// I made zero padding for this example but you can give anything you want
contentPadding: EdgeInsets.zero,
leading: symbol,
title: Text(name, textScaleFactor: 1.2),
trailing: Text(time, textScaleFactor: 1.3),
)
答案 3 :(得分:0)
我找到了解决方法(有点)。只需添加:
密集:是
在ListTile()里面,它会稍微缩小差距,但这就是我现在能做的。如果有人有,我将继续寻找更好的解决方案。