0

我想在我的应用程序中创建一个产品购物车列表。所以我使用了 Card 小部件,其中使用了 ListTile 小部件。在 listTile 中,我使用尾随属性创建了一个 Column 来添加 2 个按钮和一个数字,当我创建这些东西时,它会显示一个布局错误,即BOTTOM OVERFLOWED BY 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: () {},
                ),
              ],
            ),
          ),
        ));
  }
}

请在这件事上给予我帮助...

4

2 回答 2

2

使用行而不是列。

 trailing: Row(
     mainAxisSize: MainAxisSize.min,
     children: ...
   )
于 2020-06-04T22:52:11.660 回答
0

那是因为您Column的身高高于ListTile的身高,因此您的身高IconButton被 剪裁了ListTile。我想到了两个选择:

  • 如果您Column足够小,请尝试将isThreeLine您的属性设置ListTile为 true,这样会ListTile更高一些,这可能正是您所需要的。
  • ListTile更好、更通用的方法是通过组合Columns 和s来制作自己的方法Row。真的不难做到。请记住,这ListTile适用于非常具体的情况。正如ListTile 类文档所述:

如果 ListTile 填充和定位其元素的方式不是您所需要的,那么使用其他小部件(例如行和列)的组合创建自定义列表项很容易。

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

在此处输入图像描述

这可能是您需要的一个很好的起点。

于 2019-10-28T09:51:51.637 回答