Есть ли способ создать шаг флаттера из цикла for и установить активный шаг?

#flutter #dart #flutter-layout

#flutter #dart #flutter-layout

Вопрос:

Я извлекаю некоторые данные из API в виджет шагового шага. Данные возвращают список категорий, и у этих категорий есть список вопросов. Я хотел бы задать название категории в качестве шага и его вопросы для содержимого шага. Вот как я получаю категории и строю шаги

   void _getCategories() async {
var res = await Network().getData("/questions");
//check if success
if (res.statusCode == 200) {
  var body = json.decode(res.body);
  var data = body['flow']['categories'];
  HashMap<String, Object> temp = new HashMap<String, Object>();
  for (var category in data) {
    temp.putIfAbsent(category['description'], () => category['questions']);
  }
  setState(() {
    categories = temp;
  });
  _buildSteps();
}
}
  

Затем я создаю список шагов:

   void _buildSteps() {
categories.forEach((key, value) {
  steps.add(Step(
      title: Text(key), content: Text(key), isActive: currentStep >= 0));
});
  

}

использование

 currentStep >= 0
  

устанавливает все шаги активными, но я хочу установить только первый шаг в качестве текущего шага, и когда нажмите продолжить, он сделает следующий шаг активным.

Ответ №1:

 List<Step> getSteps() {
  List<Step> mySteps = [];
   for(int i = 0; i< 5; i  ) {
     final _step = Step(title: Text('$i'), content: Container(), isActive: true);
     mySteps.add(_step);
   }
   return mySteps;
}