如何在颤动中更改下拉按钮的默认值?

Posted

技术标签:

【中文标题】如何在颤动中更改下拉按钮的默认值?【英文标题】:How to change default value of dropdownButton in flutter? 【发布时间】:2021-12-16 19:19:27 【问题描述】:

我正在颤振中创建一个下拉按钮,但我有一个问题 当我使用下拉菜单时,它会显示 first item 的名称,但我想将其(默认值)更改为 categories 并且知道如何做到这一点,我也尝试使用提示(如您在代码中看到的),但它不起作用。 这是我的代码:

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")
            ),
          )

我想将此 First Item 更改为 categories

【问题讨论】:

你能说清楚一点吗? 分享额外的代码,你到底想要什么 @ChinkySight 好的我编辑了 【参考方案1】:

使值可以为空。 DropdownButton 可以有 null 值,当它为 null 时,它将显示 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"),
                ),

【讨论】:

没错,我的价值是:int? _value=1; 是的,它的初始值为 1,这就是为什么你总是选择第一个项目。【参考方案2】:

只需在 initState() 上赋值

selectedDropDownValue = "类别";

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")
            ),
          )

【讨论】:

以上是关于如何在颤动中更改下拉按钮的默认值?的主要内容,如果未能解决你的问题,请参考以下文章

在颤动中使用块和下拉菜单

如何在颤动中选择基于下拉项添加文本字段值

如何更改打印对话框中的下拉值?

如何使用react js在select中设置默认值

reactstrap 未在下拉列表中显示选定的默认值/值

如何在颤动中将值设置为下拉列表?