如何渲染一个图标x次-Flutter

时间:2019-04-09 13:20:13

标签: dart flutter

如果这是一个显而易见的解决方案,那么我对飞镖/打颤器还是很陌生的,所以道歉,但是我正在尝试基于models属性动态渲染图标。

我正在尝试这样的事情:

Row(
  children: <Widget>[
     _starsForRatings()
    ],
  )

List<Icon>_starsForRatings() {
  List<Icon> stars = [];
  for(int i = 0; i < _rating; i++){
    stars.add(Icon(Icons.star));
  }
 return stars;
}

但是我遇到了错误“无法将元素类型List分配给列表类型Widget”,但是我想不出另一种呈现方式。

谢谢

1 个答案:

答案 0 :(得分:0)

您快到了。 问题是您要将一个列表打包到另一个列表中。 我的意思是_starsForRatings()已经在返回您需要的列表。将列表分配给Row的children属性之前,无需将该列表放入另一个列表中。
尝试以下方法:

Row(
  children: _starsForRatings(),
)

List<Icon>_starsForRatings() {
  List<Icon> stars = [];
  for(int i = 0; i < _rating; i++){
    stars.add(Icon(Icons.star));
  }
  return stars;
}