繁体   English   中英

如何从 Flutter ListTile 设置前导和标题之间的填充?

[英]How to set the padding between leading and title from Flutter ListTile?

我有一个折衷的解决方案,但不能满足我。

final int padding=10; //the padding you wanna set.
ListTile(
    leading: Icon(icon),
    title:  Container(
                  height: 30,
                  child: Stack(
                    alignment: Alignment.centerLeft,
                    overflow: Overflow.visible,
                    children: <Widget>[
                      Positioned(
                        child: title,
                        left: padding-35,
                      ),
                    ],
                  ),
                ),
 );

是的。 您可以使用负边距。 这绝对有效。 但它并不完美。所以有人可以提供更好的解决方案吗?

========== 附加 ============

我在下面看到一些答案。但你似乎没有得到我的观点。

Flutter ListTile 中的领先和标题之间的默认填充对我来说太大了。 我想自己调整填充。 仅用 Padding 小部件包装标题无法达到目标。

========== 我找到了一个更好的解决方案 ============

final int padding = 10; //the padding you wanna set.
ListTile(
  leading: Icon(icon),
  title: Container(
    transform: Matrix4.translationValues(padding - 35, 0.0, 0.0),
    child: title,
  ),
);

使用 Padding 小部件,例如:

                ListTile(
                  leading: Icon(Icons.location_on),
                  title: Padding(
                    // change left : 
                    padding: const EdgeInsets.only(left: 30),
                    child: Text('hello world'),
                  ),
                ),

您可以为此向标题小部件添加填充。

将您的代码替换为:

final double padding=10; //the padding you wanna set.
ListTile(
    leading: Icon(icon),
    title: Padding(
             padding: const EdgeInsets.all(padding),
             child:Container(
             height: 30,
             child: Stack(
               alignment: Alignment.centerLeft,
               overflow: Overflow.visible,
               children: <Widget>[
                 Positioned(
                   child: title,
                   left: padding-35,
                 ),
               ],
             ),
           ),
         ),
 );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM