首页 > 解决方案 > 如何渲染图标 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;
}

但是我收到错误“无法将元素类型列表分配给列表类型小部件”,这是有道理的,但是我想不出另一种呈现它的方法。

谢谢

标签: dartflutter

解决方案


您快到了。问题是您正在将一个列表打包到另一个列表中。我的意思是_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;
}

推荐阅读