因此每个用户分配了不同的价格,某些价格超过1,我只想显示价格属于该用户,然后才显示该价格,而不显示所有用户的所有价格,如果空白,则显示空白价格不属于用户。
屏幕截图:
///想象levelsData已经与jsonArray数据一起存储
jsonArray数据:
{
"price": 1540,
"user_id": "user2"
}
因此,我希望仅在 userId 等于 element [user_id] 时才能在图块中显示,因为以前它显示了所有内容,所以使用此代码,我可以根据该条件进行过滤,但如果不符合要求,则会显示空白。我不知道如何只显示信息而没有显示空白空间
var levelsData = [];
class StuffInTiles extends StatelessWidget {
final String userId;
final int price;
StuffInTiles(this.userId, this.price);
@override
Widget build(BuildContext context) {
List<dynamic> _getChildren() {
List<Widget> children = [];
levelsData.forEach((element) {
children.add(
ListTile(
dense: true,
title: Text(
userId == element['user_id']
? "@" + element['price'].toString()
: ""),
),
);
});
return children;
}
答案 0 :(得分:1)
如果您不想添加空的listTile,则只需先检查条件,然后再将其添加到子级列表即可。
levelsData.forEach((element) {
if(userId == element['user_id']) {
children.add(
ListTile(
dense: true,
title: "@" + element['price'].toString()),
);
}
}