Flutter 将ListTiles放置在一行中
我现在研究了几个小时,不明白为什么不可能把一张图片和一张有一串ListTile的卡片排成一行。 我得到的错误是: 在performLayout()期间引发了以下断言: BoxConstraints强制无限宽。 有问题的限制是:Flutter 将ListTiles放置在一行中,flutter,dart,flutter-layout,flutter-web,Flutter,Dart,Flutter Layout,Flutter Web,我现在研究了几个小时,不明白为什么不可能把一张图片和一张有一串ListTile的卡片排成一行。 我得到的错误是: 在performLayout()期间引发了以下断言: BoxConstraints强制无限宽。 有问题的限制是: BoxConstraints(w=Infinity,0.0您的ListTile需要约束,以便它知道其边界在哪里 只需给它一些限制(例如,用宽度包装在一个大小的框中)或者,如果您希望尽可能多地占用空间,只需使用Flex小部件(如Flexible或Expanded)将每个li
BoxConstraints(w=Infinity,0.0您的
ListTile
需要约束,以便它知道其边界在哪里
只需给它一些限制(例如,用
宽度
包装在一个大小的框中
)或者,如果您希望尽可能多地占用空间,只需使用Flex
小部件(如Flexible
或Expanded
)将每个listile
包装成Flexible,如果您想与列上的所有tile均匀共享空间,则可以使用Expanded/Flexible包装卡片,这将解决您的约束问题,同时也是v在剩余空间放置其他小部件时,指定图像宽度非常重要
return Scaffold(
appBar: AppBar(
title: Text('Sample'),
),
body: SingleChildScrollView(
child: Card(
child: Row(mainAxisSize: MainAxisSize.min, children: [
Image.network(
"https://cdn.pixabay.com/photo/2018/07/11/21/51/toast-3532016_1280.jpg",
width: 40,
loadingBuilder: (BuildContext context, Widget child,
ImageChunkEvent loadingProgress) {
if (loadingProgress == null) {
return child;
}
return Center(
child: CircularProgressIndicator(
backgroundColor: Colors.red,
),
);
},
),
Expanded(
child: Card(
child: Column(mainAxisSize: MainAxisSize.min, children: [
ListTile(
trailing: Icon(Icons.play_arrow),
title: Text("Black Lotus"),
subtitle: Text("Name"),
),
Container(
child: Row(
children: [Icon(Icons.play_arrow), Icon(Icons.polymer)],
),
),
ListTile(
title: Text("Hello"),
),
ListTile(
title: Text("Hello"),
),
]),
),
),
]),
),
),
);
啊,是的!我现在已经重新观看了关于扩展小部件的视频。对于所有参与其中的人: