dart - 如何渲染图标 x 次 - Flutter
问题描述
我对 dart/flutter 很陌生,如果这是一个明显的解决方案,我深表歉意,但我正在尝试根据模型属性将图标呈现动态次数。
我正在尝试这样的事情:
Row(
children: <Widget>[
_starsForRatings()
],
)
List<Icon>_starsForRatings() {
List<Icon> stars = [];
for(int i = 0; i < _rating; i++){
stars.add(Icon(Icons.star));
}
return stars;
}
但是我收到错误“无法将元素类型列表分配给列表类型小部件”,这是有道理的,但是我想不出另一种呈现它的方法。
谢谢
解决方案
您快到了。问题是您正在将一个列表打包到另一个列表中。我的意思是_starsForRatings()
已经返回了你需要的列表。children
在将其分配给Row的属性之前,您无需将该列表放入另一个列表中。
试试这个:
Row(
children: _starsForRatings(),
)
List<Icon>_starsForRatings() {
List<Icon> stars = [];
for(int i = 0; i < _rating; i++){
stars.add(Icon(Icons.star));
}
return stars;
}
推荐阅读
- react-native - React Native - ExpoPixi:非法调用
- php - 使用 symfony 命令发送邮件时嵌入图像不可读
- typescript - TypeScript:将输入类型 T 映射到树状类型
- amazon-web-services - 获取“InvalidAccessKeyId:您提供的 AWS 访问密钥 ID 在我们的记录中不存在。” 更新放大用户 IAM 密钥后
- powershell - PowerShell中有输入输出功能吗?
- r - 根据位置改变特定列
- pine-script - pinescript 中未声明的标识符错误
- swift5 - 将 NSValue 转换为 CMTimeRange 类型 swift 5.3
- python - 所有图的简单路径的独特组合
- html - recv() 循环将最后一个“块”两次添加到缓冲区