Как изменить значение по умолчанию кнопки выпадающего списка в flutter?

#flutter #dart #dropdownbutton

Вопрос:

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

 Container(
            height: pageHeight / 15,
            padding: EdgeInsets.all(20),
            child:DropdownButton(
                value: _value,
                items: const [
                  DropdownMenuItem(
                    child: Text("First Item"),
                    value: 1,
                  ),
                  DropdownMenuItem(
                    child: Text("Second Item"),
                    value: 2,
                  ),
                ],
                onChanged: (value) {
                  setState(() {
                    _value = value as int ;
                  });
                },
                hint:Text("Select item")
            ),
          )
 

введите описание изображения здесь

Я хочу изменить этот первый пункт на категории

Комментарии:

1. Не могли бы вы, пожалуйста, выразиться яснее?

2. поделитесь дополнительным кодом и что именно вы хотите

3. @ChinkySight хорошо, я отредактировал

Ответ №1:

Сделайте значение обнуляемым. DropdownButton может иметь нулевое значение, и пока оно равно нулю, он покажет hint виджет.

   int? _value;
 
 DropdownButton(
                  value: _value,
                  items: const [
                    DropdownMenuItem(
                      child: Text("First Item"),
                      value: 1,
                    ),
                    DropdownMenuItem(
                      child: Text("Second Item"),
                      value: 2,
                    ),
                  ],
                  onChanged: (value) {
                    setState(() {
                      _value = value as int;
                    });
                  },
                  hint: Text("categories"),
                ),
 

Комментарии:

1. это верно, моя ценность была : int? _value=1;

2. Да, у него было начальное значение 1, поэтому у вас всегда был выбран 1-й элемент.

Ответ №2:

Просто подпишитесь на initState()

Значение Selecteddropdown = «категории»;

 Container(
            height: pageHeight / 15,
            padding: EdgeInsets.all(20),
            child:DropdownButton(
                value: _value,
                items: const [
                  DropdownMenuItem(
                    child: Text("First Item"),
                    value: 1,
                  ),
                  DropdownMenuItem(
                    child: Text("Second Item"),
                    value: 2,
                  ),
                ],
                value: selectedDropDownValue, 
                onChanged: (value) {
                  setState(() {
                    selectedDropDownValue = value;
                  });
                },
                hint:Text("Select item")
            ),
          )