答案 0 :(得分:1)
您已通过_ListFamilyPageState.data.body.family.length设置了ListView的itemCount属性,并将其构建器的索引与另一个列表data.body.friends [index] .id.toString()一起使用
我不认为两者具有相同数量的元素
答案 1 :(得分:1)
该错误在您的ListViewBuilder中:
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: _ListFamilyPageState.data.body.family.length,
itemBuilder: (context, index) {
return Container(
height: 74.0,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topRight: const Radius.circular(20.0),
bottomRight: const Radius.circular(20.0)),
),
width: MediaQuery.of(context).size.width - 50.0,
child: Center(
child: Text(
data.body.friends[index].id.toString(),
style:
TextStyle(fontSize: 24.0),
)));
},
)
您指定了family.length
个项目(数据中为15个),
但是您正在从friends[index]
中提取实际数据(数据中有8项)。
当在索引8处渲染项目时,这会产生RangeError。
最重要的是:您在状态下使用静态数据:
class _ListFamilyPageState extends State<ListFamily> {
static Relations data;
// ...
}
不要那样做。