【发布时间】:2019-06-12 01:34:32
【问题描述】:
item1、item2、item3 都是列表,我正在尝试构建一个列表视图,其中包含每个列表包含的所有项目,所有这三个列表视图构建器将根据需要占据尽可能多的位置,假设 item1 有 20其中的项目将占用 20 行,而 item2 有 25 行等。当我尝试使用一行和 listview.builder 时,它给了我一个错误。 我正在尝试做的事情:
body: Container(
child: Column(
children: <Widget>[
Row(
children: <Widget>[
ListView.builder(
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text(widget.item1[index]),
);
},
itemCount: widget.item1 == null ? 0 : widget.item1.length,
),
],
),
],
),
),
在大量崩溃报告中:
flutter: Another exception was thrown: NoSuchMethodError: The method '<=' was called on null.
flutter: Another exception was thrown: NoSuchMethodError: The getter 'visible' was called on null.
问题是我知道的唯一方法是使用Expanded 来制作它,它会将屏幕分成三部分并形成相等的空间,或者我可以使用 flex 进行操作,但这不是我想要的。
body: Container(
child: Column(
children: <Widget>[
Expanded(
child: ListView.builder(
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text(widget.item1[index]),
);
},
itemCount: widget.item1 == null ? 0 : widget.item1.length,
),
),
Expanded(
child: ListView.builder(
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text(widget.item2[index]),
);
},
itemCount: widget.item2 == null ? 0 : widget.item2.length,
),
),
Expanded(
child: ListView.builder(
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text(widget.item3[index]),
);
},
itemCount: widget.item3 == null ? 0 : widget.item3.length,
),
),
],
),
),
【问题讨论】:
-
为什么不使用
SingleChildScrollView+ Column ,并在添加为 Column 的子项之前以编程方式添加项目 -
@diegoveloper 我不知道这个,我现在正在看。
-
你也可以使用 Slivers,我有一个问题,item1,item2,item3 有相同类型的对象吗?
-
是的 item1, item2, item3 都是列表对象。我想,条子要先进一点。但我也可以试试条子。
-
是的,我知道,但是 item1, item2, item3 具有相同类型的对象? List
item1 , List item2 , List item3 ?如果是真的,您可以合并您的列表
标签: flutter