解决 Flutter ListTitle BoxConstraints forces an infinite width

3 min read

ListTile通常会继承其父部件的尺寸来填充。在这种情况下,可能发生的情况是,布局是无界的,ListTile得到了无限的宽度。

解决这个问题的一个方法是通过在你的Row上使用Expanded对它的children定义一个权重。

使用Expanded的flex属性可以根据灵活的子节点的flex系数来划分自由空间

Row(
  children: <Widget>[
    Expanded(
      flex: 2,
      child: Container(...),
    ),
    Expanded(
      flex: 2,
      child: ListTile(
        title: new Text('test'),
        subtitle: new Text('test'),      
      ),
    ),
  ]
)