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文件中创建一个带有布尔语句"isParliament"的条件ListView.builder。"isParliament"值为"false"的对象根本不会显示。我还需要其他声明吗?
我通过返回SizedBox(高度:0(来实现这一点;当我尝试只返回null时,一旦触发null并且列表停止,我的索引就会停止。
我对break也有同样的问题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;
}
)
我尝试过这个解决方案,它运行良好,没有出现任何错误。