如何在Flutter ListTile中设置开头和标题之间的填充?

时间:2019-12-24 03:06:15

标签: flutter

我有一个妥协的解决方案,在这个解决方案之下,我不满意。

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

2 个答案:

答案 0 :(得分:0)

使用填充小部件,如:

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

答案 1 :(得分:0)

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

将代码替换为:

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