gpt4 book ai didi

flutter - 在下拉onchange事件时更改小部件

转载 作者:行者123 更新时间:2023-12-03 04:09:00 25 4
gpt4 key购买 nike

我有一个带有几个选项的下拉菜单。为了简单起见,可以说它们是:“A”,“B”和“C”。

这是我的代码的片段:

children: <Widget>[
FormBuilder(
key: _fbKey,
autovalidate: true,
child: Column(
children: <Widget>[
FormBuilderDropdown(
attribute: "value",
decoration: InputDecoration(
labelText: "Choose something?"),
hint: Text('Select Option'),
validators: [FormBuilderValidators.required()],
items: user.option.map((v) {
return DropdownMenuItem(
value: v,
child: ListTile(
leading: Image.asset(
'assets/img/image.png',
width: 50,
height: 50,
),
title: Text("${v.option}"),
));

}).toList(),
),
],
),
// if v.option == "A" is selected here build Widget A()
// if v.option == "B" is selected here build Widget B()
// if v.option == "C" is selected here build Widget C()
),

因此,基于下拉列表选择,我想呈现适当的小部件。
如果在下拉菜单中选择了A,如果选择了B,则选择了B,如果选择了C,则如何构建了小部件A?

但是,这必须动态更改,任何帮助都是好的。

最佳答案

我看到的最简单的方法是创建一个呈现小部件的函数,我们将其称为_renderWidget(),在该函数内部,您可能会有以下内容:

_renderWidget() {
if(condition == A) {
return Text('Widget A'); // this could be any Widget
} else if(condition == B) {
return Text('Widget B');
} else {
return Text('Widget C');
}
}

然后在 DropdownButton onChanged函数中,您可以基于下拉值更改条件:
onChanged(String value) {

if(value == 'something') {
setState(() {
condition = A; // A, B or C
});
}

}

您可以在要显示它们的小部件内调用 _renderWidget()函数,例如,假设一个 Container小部件。
Container(
child: _renderWidget()
)

当然,所有这些都需要在 StatefulWidget内部完成。

关于flutter - 在下拉onchange事件时更改小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com