我有下拉按钮和项目来动态列表,这是完美的工作。我可以显示所有的列表项,但当我选择某人我的值不会在屏幕上改变。只是输入。第一次写入不会改变,以选择。当我检查终端,我可以看到选定的项目,所以设置状态的方法工作,但initialvalue不改变。
我下拉按钮
String dropdownvalue = entry.first;
var items =entry;
DropdownButton(
// Initial Value
value: dropdownvalue,
// Down Arrow Icon
icon: const Icon(Icons.keyboard_arrow_down),
// Array list of items
items: items.map((dynamic items) {
return DropdownMenuItem(
value: items,
child: Text(items),
);
}).toList(),
// After selecting the desired option,it will
// change button value to selected value
onChanged: (dynamic newvalue) {
setState(() {
dropdownvalue = newvalue; > **this not working**
print(dropdownvalue); > **it gives the newvalue**
});
},
),
2条答案
按热度按时间5ssjco0h1#
您的问题似乎与声明dropdownvalue和items列表的方式有关。
请检查这个dartpad。在这里我使用你的代码与一些修改的声明项目列表和dropdownvalue。
https://dartpad.dev/?id=33ef41ea7fa95613fe1a498e4dac4bcc
fd3cxomn2#
您必须使用stateFul小部件,并将
: dropdownvalue
之类的变量放在全局变量中,它的含义在我也遇到过同样的问题,就这样解决了。