Looping in Flutter inside ListView

Viewed 17

In my app I have a list view with checkboxes. My code:

 body: Column(children: [
        Expanded(
          child: MasonryGridView.count(
              itemCount: viewModel.data?.questions.length,
              padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 10),
              crossAxisCount: 1,
              mainAxisSpacing: 15,
              crossAxisSpacing: 10,
              itemBuilder: (context, index) {
                switch (viewModel.data?.questions[index].type) {
                  case QuestionType.Checkbox:
                    return TextFieldItem(
                        title: viewModel.data?.questions[index].text ?? "",
                        isMandatory:
                            viewModel.data?.questions[index].isMandatory ??
                                true,
                        inputText: null,
                        buttonPressedCounter: buttonPressedCounter);
                  default:
                    return SizedBox(
                        height: 550,
                        child: CheckboxListItem(
                            title: viewModel.data?.questions[index].text ?? "",
                            checkboxItems: [
                              CheckboxListTileModel(
                                  answer: viewModel.data?.questions[index]
                                          .answerVariants[index].text ??
                                      "",
                                  isChecked: false,
                                  image: null)
                            ],
                            isEditable: true
                    )
               )

The problem is that it doesn't show all checkboxes that I receive from my model, it shows only one checkbox, the last one from my answerVariants. I know the problem is in the following piece of code:

                           checkboxItems: [
                             CheckboxListTileModel(
                                 answer: viewModel.data?.questions[index]
                                              .answerVariants[index].text ??
                                          "",
                                 isChecked: false,
                                 image: null)
                           ],

How can I put every answerVariant inside my answerVariants into checkboxItems?

1 Answers

I managed to fix it easily:

for (var answerVariant in viewModel.data!.questions[index].answerVariants)
      CheckboxListTileModel(
      answer: answerVariant.text ?? "",
      isChecked: false,
      image: null)
Related