Как перебрать виджет во флаттере с помощью дротика - PullRequest
0 голосов
/ 14 марта 2020

Мне нужно перебрать иконку во флаттере в зависимости от длины значения, полученного из 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))),
                  );
                },
              );
            },
          ),
        );
      }
    }

Вот текущий снимок экрана пользовательского интерфейса:

Но, как вы видите, отображается только одна иконка со звездочкой, я хочу повторить звездочки в зависимости от значения, полученного из пожарного магазина

Поэтому я хочу что-то вроде

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

1 Ответ

1 голос
/ 14 марта 2020

Вы можете использовать коллекцию для для итерации и добавления нескольких значков:

 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...