Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 删除ListTile中前导和标题之间的填充_Dart_Flutter - Fatal编程技术网

Dart 删除ListTile中前导和标题之间的填充

Dart 删除ListTile中前导和标题之间的填充,dart,flutter,Dart,Flutter,我需要删除ListTile中前导小部件和标题小部件之间的一些填充。 它有太多的空格。 有办法吗? 我使用的代码如下: ListTile _getActionMenu(String text, IconData icon, Function() onTap) { return new ListTile( leading: new Icon(icon), title: new Text(text), onTap: onTap, ); } 您可以使用Align并指定A

我需要删除ListTile中前导小部件和标题小部件之间的一些填充。 它有太多的空格。 有办法吗? 我使用的代码如下:

ListTile _getActionMenu(String text, IconData icon, Function() onTap) {
  return new ListTile(
    leading: new Icon(icon),
    title: new Text(text),
    onTap: onTap,
  );
}

您可以使用
Align
并指定
Align

ListTile _getActionMenu(String text, IconData icon, Function() onTap) {
  return new ListTile(
    leading: new Icon(icon),
    title: Align(
      child: new Text(text),
      alignment: Alignment(-1.2, 0),
    ),
    onTap: onTap,
  );
}

相反,您可以创建自己的小部件,如下所示:

  • 假设我们将创建一个名为
    text\u icon.dart

  • 这几天我也遇到了同样的问题,最后我发布了一个可以解决这个问题的软件包

    该软件包位于,使用该软件包,我们可以设置horizontalTitleGap,当它被设置为0.0(零)时,前导和标题之间的填充将变为零

    用法:

    ListTileMoreCustomizable(
        title: Text("Title"),
        trailing: Icon(Icons.people),
        horizontalTitleGap: 0.0,
        onTap: (details){},
        onLongPress: (details){},
    );
    
    编辑:
    这个方法对我来说非常有效,而且代码在BSD许可下(原始代码太长)也可以使用,我很难理解为什么一个用户在没有提交任何问题的情况下否决了这个答案。

    < P>我发现一个丑陋的解决办法是在标题部分放一个行小部件,然后把图标和文本放在中间的一个siZebox中。通过这种方式,您可以控制它们之间的空间大小:

    ListView(
      shrinkWrap: true,
      children: <Widget>[
        ListTile(
          title: Row(
            children: <Widget>[
              Icon(Icons.android),
              SizedBox(
                width: 5, // here put the desired space between the icon and the text
              ),
              Text("Title") // here we could use a column widget if we want to add a subtitle
            ],
          ),
        )
      ],
    )
    
    ListView(
    收缩膜:对,
    儿童:[
    列表砖(
    标题:世界其他地区(
    儿童:[
    图标(Icons.android),
    大小盒子(
    宽度:5,//此处在图标和文本之间放置所需的空间
    ),
    Text(“Title”)//在这里,如果我们想添加字幕,我们可以使用列小部件
    ],
    ),
    )
    ],
    )
    

    编辑:颤振2.0升级后 正如Dinesh指出的,
    ListTile
    收到了一个
    minLeadingWidth
    属性

    默认值为
    40
    ,以便通过
    x
    pass
    minLeadingWidth:40-x
    减少行距和标题之间的空间


    Align
    结果将取决于文本和平铺宽度

    使用
    Transform.translate
    获得一致的结果

    listile(
    引导:图标(图标),
    标题:Transform.translate(
    偏移量:偏移量(-16,0),
    child:Text(“某些文本”),
    ),
    );
    
    我认为
    ListTile
    不是正确的小部件,更优雅的方法是:

    FlatButton.icon(
    onPressed:null,
    图标:图标(
    Icons.flag_四舍五入,
    颜色:颜色,白色,
    ),
    标签:文本(“标题”)
    
    您可以使用ListTile上的最小LeadingWidth。 默认值为40,因此可以使用较低的值使前导和标题更接近

    ListTile(
      leading : Icon(Icons.settings),
      title : Text("Settings"),
      minLeadingWidth : 10,
    );
    

    此代码就是解决方案

    。。。
    contentPadding:EdgeInsets.all(0),
    ...
    

    titles变为asymetrich您的解决方案有效,但如果我将文本放入容器中,则无效。我把它放在一个容器中,因为我想设置一个背景色,但是Align停止了任何操作。有人知道解决方法吗?如果列表平铺的实现发生更改,这将导致问题。(例如列表平铺中的默认填充更改)更好的方法是不使用前导,而是使用行小部件将所需的前导小部件添加为标题的一部分。如其他答案所示。下面由Rustem Kakimov给出的答案是最好的替代选项。如果您将包重命名为BetterListIle,可能您会得到投票:PIt似乎这些修改已经合并到颤振主通道中:这并不是那么难看,小于我所接受的答案。至少你可以准确地控制填充,并且它不依赖于设备的纵横比。我是新手,但我同意@ncuillery-这是一个很好的解决方案。谢谢我不是100%确定,但我相信在空白前导和磁贴标题之间仍然会有一个虚幻的填充。@westdabestdb答案对我有用,但只对标题有效。对于副标题,只有这一个有效。工作完美!minLeadingWidth是一种更好的方法。这是否回答了您的问题?随着Flatter2.0.0的发布,这个问题似乎值得考虑。哇,我很高兴我滚动到了这个页面的底部,找到了这个答案!这将是可怕的,当它在稳定的渠道。截至2021-03-02,它位于开发频道。它是
    1.27.0-8.0.pre
    (稳定的是)。它是一天之后的。如果我读对了,它似乎包括了所有的开发(和测试版)频道更改(开发现在有一个更新的
    2.1.0-10.0.pre
    build)。我仍然在稳定频道上,现在可以使用此选项
    minLeadingWidth
    。这减少了仅领先窗口小部件的左边距
    ListView(
      shrinkWrap: true,
      children: <Widget>[
        ListTile(
          title: Row(
            children: <Widget>[
              Icon(Icons.android),
              SizedBox(
                width: 5, // here put the desired space between the icon and the text
              ),
              Text("Title") // here we could use a column widget if we want to add a subtitle
            ],
          ),
        )
      ],
    )
    
    ListTile(
      leading : Icon(Icons.settings),
      title : Text("Settings"),
      minLeadingWidth : 10,
    );