删除小部件之间的间隙

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除小部件之间的间隙相关的知识,希望对你有一定的参考价值。

我想缩小列表之间的距离,但是它不起作用。我唯一的选择是扩大差距:Sizedbox,spacer,divider

screenshot of my problem

代码:

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),
      ),
    );
  }
答案

这是因为ListTile拥有自己的Padding。您可以尝试更改PaddingListTile。如果还不够,您应该创建自己的Widget而不使用垂直填充

您始终可以转到ListTile的源代码并对其进行复制和自定义。

另一答案

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

以上是关于删除小部件之间的间隙的主要内容,如果未能解决你的问题,请参考以下文章

删除工具栏和选项卡布局之间的空间间隙

Listview中项目之间的无用间隙颤动

Python + KivyMD 和代码优化上的小部件之间的交互和删除

Qt:: 如何消除 qmainwindow 中小部件和工具栏之间的间隙

Android小部件,启动一个片段?

如何删除小部件之间的线条并使其他小部件居中?