移除顶部和底部ListTile颤动的空间

时间:2019-03-20 16:07:16

标签: android flutter flutter-layout

请给我帮助。 如何从ListTile删除顶部和底部的空间?

我的代码是:

             child: Column(
                children: <Widget>[
                  ListTile(
                    contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
                    title: Text(
                      'Home',
                      style: TextStyle(fontSize: 15.0),
                    ),
                  ),
                  ListTile(
                    contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
                    title: Text(
                      'Audio',
                      style:
                          TextStyle(fontSize: 15.0, color: Colors.black45),
                    ),
                  ),),

Screenshot

谢谢!。对不起,我的英语不好

9 个答案:

答案 0 :(得分:7)

在您的代码中,在列表磁贴中放置属性density = true

       ListTile(
                dense:true,
                contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
                title: Text(
                  'Home',
                  style: TextStyle(fontSize: 15.0),
                ),
              ),

希望有帮助!

答案 1 :(得分:6)

您可以使用visualDensity属性来减小空间。

ListTile(
    visualDensity: VisualDensity(horizontal: 0, vertical: -4),
    title: Text("xyz")
);

可以从visualDensity更改-4.0 to 4.0的值。降低值,使视图更紧凑。

P.S。此解决方案类似于其他question

此问题与top/bottom间距有关。但是other question是关于leadingtitle

之间的差距

答案 2 :(得分:2)

ListTile(
    dense: true,
    contentPadding: EdgeInsets.symmetric(horizontal: 0.0, vertical: 0.0),
    visualDensity: VisualDensity(horizontal: 0, vertical: -4),
);

以上解决方案对我有用。我希望,这也能帮助你。感谢您提出这个问题。

答案 3 :(得分:1)

尝试一下

brew install idris

答案 4 :(得分:1)

在您的dense:true属性中实施这一ListTile,密集参数使文本变小并将所有内容打包在一起。

您可以通过设置contentPadding来更改左侧和右侧(而不是顶部或底部)插入的内容量。默认值为 16.0 ,但此处我们将设置为 0.0

 ListTile(
   contentPadding: EdgeInsets.symmetric(vertical: 0.0, horizontal: 
    0.0),
   dense:true,
   title: Text("Your title"),
   subtitle: Text("subtitle",
    style: TextStyle(fontSize: 14.0),),
 );

答案 5 :(得分:1)

让我们尝试更短的方式:

ListTile(
          contentPadding: EdgeInsets.zero,
          dense: true,
          title: Text('label'),
        );

答案 6 :(得分:0)

使用ListTile是不可能的。借助ListTileTheme,可以进行一些修改,例如颜色,它们也是修改填充的选项,但仅适用于左右填充。更好的方法是创建自己的自定义图块,例如他的答案中显示的@santosh。 您也可以使用SizedBox,但它可能导致悲惨的输出。

答案 7 :(得分:0)

对我来说,填充小部件代替了ListTile。可以根据您对ListItem的要求更新padding变量。

Padding(
        padding: const EdgeInsets.only(left : 8.0 , right 8.0),
        child: Text("List Item Text",
            style: Theme.of(context).textTheme.body1))

答案 8 :(得分:0)

在ListTile中对我有用:

visualDensity: VisualDensity(horizontal: 0, vertical: -4)