return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context, int index) {
final bool alreadySaved =
_saved.contains(snapshot.data[index]);
if (!snapshot.data[index].isParliamentary) {
return ListTile(
title: Text(snapshot.data[index].name,
style: TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
)),
trailing: Icon(
alreadySaved
? Icons.favorite
: Icons.favorite_border,
color: alreadySaved ? Colors.red : null,
),
onTap: () {
setState(() {
if (alreadySaved) {
_saved.remove(snapshot.data[index]);
print(_saved);
} else {
_saved.add(snapshot.data[index]);
print(_saved);
}
});
},
);
}
});
尝试在我的JSON文件中使用布尔语句'isParliamentary'创建条件ListView.builder。 'isParliamentary'值为'false'的对象根本不会显示。我需要其他语句吗?
答案 0 :(得分:0)
我也有相同的中断 ListView.builder 问题,但是我没有任何适当的解决方案,我尝试使用下面的代码来处理条件ListView
ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context, int index) {
final bool alreadySaved = _saved.contains(snapshot.data[index]);
if (!snapshot.data[index].isParliamentary) {
// Return Widget for this condition,
}
else{
// Return else widget
// if you don't have else widget the return null like below
// return null;
}
)
我已经尝试过这种解决方案,它可以正常工作,不会出现任何错误。
答案 1 :(得分:0)
我通过返回一个 SizedBox(height: 0);当我尝试只返回 null 时,一旦 null 被触发并且列表停止,我的索引就会停止。