我如何在flutter的尾随属性内添加更多的2个按钮和1个文本

时间:2019-10-28 09:34:53

标签: flutter dart flutter-layout trailing flutter-widget

我想在我的应用中创建产品购物车列表。因此我使用了Card Widget,在其内部使用了ListTile Widget。在listTile内,我使用拖尾属性创建了一个Column以添加2个按钮和一个Number,当我创建这些东西时,其显示的布局错误为底稿覆盖55 PIXEL

这是密码

  @override
  _NewTestState createState() => _NewTestState();
}

class _NewTestState extends State<NewTest> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: new AppBar(
          title: new Text("data"),
        ),
        body: new Card(
          child: new ListTile(
            leading: new FlutterLogo(
              size: 50.0,
            ),
            title: new Text("Title"),
            subtitle: new Text("subtitle"),
            trailing: new Column(
              children: <Widget>[
                new IconButton(
                  icon: Icon(Icons.arrow_drop_up),
                  onPressed: () {},
                ),
                new Text("1"),
                new IconButton(
                  icon: Icon(Icons.arrow_drop_down),
                  onPressed: () {},
                ),
              ],
            ),
          ),
        ));
  }
}

请帮助我...

2 个答案:

答案 0 :(得分:0)

那是因为您的Column高过ListTile的身高,因此IconButtonListTile剪断了。我想到了两种选择:

  • 如果您的Column足够小,请尝试将isThreeLine的{​​{1}}属性设置为true,这会使ListTile更高,这可能只是您需要什么。
  • 一种更好,更通用的方法是通过组合ListTileListTile来制作自己的Column。确实并不难。请记住,Row适用于非常特殊的情况。正如ListTile class documentation所述:
  

如果ListTile填充和定位其元素的方式与您所寻找的不完全相同,则可以轻松结合其他小部件(例如行和列)来创建自定义列表项。

从文档中检查示例应用程序,这是它生成的结果。

enter image description here

这可能是满足您需求的一个很好的起点。

答案 1 :(得分:0)

使用行而不是列。

 trailing: Row(
     mainAxisSize: MainAxisSize.min,
     children: ...
   )