Ограничить количество выбранных флажков

у меня есть несколько флажков ... в которых вы можете установить более одного флажка ... вот так:

for (var a in user.poll.questions[i].options) {
          children.add(
            new Row(
              children: [
                new Checkbox(
                    value: questionList.contains(a.id),
                    onChanged: (bool newValue) {
                      setState(() {
                        //if (questionList.length < user.poll.questions[i].maxChoice){
                        newValue
                            ? questionList.add(a.id)
                            : questionList.remove(a.id);
                        //}
                      });
                      answers[user.poll.questions[i].id] = questionList;
                    }),
                new Text(
                  a.text,
                  style: TextStyle(fontSize: 16.0),
                ),
              ],
            ),
          );
        }

но я хочу ограничить количество отмеченных ящиков .. я получаю максимальное количество вариантов от json .. как ограничить выбор им флажков?

например, если

int maxChoices = 3;

как я могу позволить пользователю устанавливать максимум 3 флажка?

Что должно произойти при достижении лимита и установке другого флажка?

Günter Zöchbauer 23.10.2018 08:38

@ GünterZöchbauer его не следует проверять, и отображается текст, указывающий, что вы достигли максимального числа ...

lamatat 23.10.2018 08:42

@ GünterZöchbauer есть идеи?

lamatat 23.10.2018 09:23
1
3
549
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Разве ты не хочешь сделать что-то подобное?

(newValue && questionList.length >= maxChoices)
    ? showAlert() : setState(() {
        newValue
            ? questionList.add(a.id)
            : questionList.remove(a.id);
         });

Другие вопросы по теме