firebase - 如何使用 dart 在 Flutter 中迭代小部件
问题描述
我需要根据从firestore获得的值的长度来迭代一个图标
下面我评论了我需要水平迭代的组件(图标)。
class _GetReviewsState extends State<GetReviews> {
String _id;
final db = Firestore.instance;
final _formkey = GlobalKey<FormState>();
String _review;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("All Reviews"),
centerTitle: true,
),
body:
...
subtitle: RichText(
text: TextSpan(
text: "",
style: TextStyle(
fontSize: 16,
color: Colors.grey,
),
children: [
WidgetSpan(
child: new IconTheme(
data: new IconThemeData(color: Colors.orange),
child: new Icon(Icons.star, size: 14,), // I want to iterate this "star icon" for reviews.ratings.length times
),
),
]
)
),
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (_) =>
ViewParticularReview(getreview: reviews))),
);
},
);
},
),
);
}
}
这是当前的 UI 屏幕截图:
但是正如你所看到的,只显示了一个星图标,我想根据我从 firestore 获得的值重复星星
所以我想要类似的东西
for( var i = 0 ; i < reviews.ratings; i++ ) {
// print the icon horizontally
}
``
here the `reviews.ratings` gives an `int` value from `firestore`
Can someone please help me?
[![enter image description here][1]][1]
[1]: https://i.stack.imgur.com/9jp5L.png
解决方案
您可以使用一个集合来迭代和添加多个图标:
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
for( var i = 0 ; i < 10; i++ )
new IconTheme(
data: new IconThemeData(color: Colors.orange),
child: new Icon(Icons.star, size: 20,), // I want to iterate this "star icon" for reviews.ratings.length times
),
],
),
检查以下示例:
https://dartpad.dartlang.org/8e922854c88b6602c17d0e7e2c51b27d
推荐阅读
- python - 将时间戳转换为日期时出现 errno 22
- testing - 如何在自动化测试中测试实时 OTP 和第三方 API 测试用例?
- selenium - 为将参数传递给应用程序的应用程序创建安装程序
- python - 如何修复我的代码以使其自动化?
- html-email - Netsuite 电子邮件模板 Freemarker 联系方式
- python - 如何从其功能之外释放 OpenCV 相机实例?
- html - 如何使这样的 div 能够扩展到任何大小,同时使角三角形保持相同大小?
- huawei-mobile-services - 无法获取推送令牌。出现错误:907135004,EXECUTE_TIMEOUT
- datastax - Cassandra:无法从 Cassandra C++ API 中删除某些行并且没有错误
- html - 如何重叠浮动的div