在Flutter中使用水平ListView构建API
在Flutter中使用水平ListView构建API
如何创建一个水平的ListView,其中的数据来自于Dart对象类,即API。\n以下是代码:\nreturn MaterialApp(\n home: Scaffold(\n appBar: AppBar(\n title: Text(\"练习\"),\n ),\n // child: Text(\"数据\")\n body:Container(\n child: ListView.builder(\n scrollDirection: Axis.horizontal,\n itemCount: l1.length,\n itemBuilder: (context , index){\n return ListTile(\n title: Image.network(l1[index]),\n subtitle: Text(l2[index]),\n );\n
\n我遇到了以下错误:\nRenderBox没有布局:RenderPointerListener#784b4 relayoutBoundary = up8 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE\n\'package:flutter/src/rendering/box.dart\':\nFailed assertion: line 1694 pos 12: \'hasSize\'\n
在Flutter中使用ListView.builder构建横向列表时遇到问题,问题的原因是ListTile需要指定宽度大小。为了解决这个问题,可以通过设置SizedBox的width属性来指定宽度大小。
以下是一个示例代码,演示了如何解决这个问题:
body: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: [1,2,3].length,
itemBuilder: (context, index) {
return SizedBox(
height: 200,
width: 500, // <---- 必须指定大小
child: ListTile(
subtitle: Text("${[index]}"),
),
);
}
)
以上代码中,我们通过将SizedBox的width属性设置为500来指定宽度大小,从而解决了横向列表的问题。