flutter - 使用动态对象时如何让 Radio 处理颤振?
问题描述
我是 Flutter 的新手,我对 Radio 有疑问。使用“常规”方法时,我让它完美地工作:
int _groupValue=-1;
...
...
child: Align(
alignment: Alignment.center,
child: Column(
children: <Widget>[
RadioListTile(activeColor: Colors.black,
groupValue: _groupValue,
value: 1,
onChanged: (value) { setState(() {
_groupValue=value;
}); },
title: Text("a"),
),
RadioListTile(activeColor: Colors.black,
groupValue: _groupValue,
value: 2,
onChanged: (value) { setState(() {
_groupValue=value;
}); },
title: Text("b"),
),
],
),
),
由于我使用 API 中的数据来创建单选按钮,因此我已将此代码更改为:
child: Align(
alignment: Alignment.center,
child: children: radioListView
),
),
并单击一个按钮,我调用异步方法从 API 下载数据,如下所示:
void getApiData() async {
...
...
...
setState() {
var radioListView = List<RadioListTile>();
for (Map<String, dynamic> c in apidata)) {
radioListView.add(new RadioListTile(
groupValue: _groupValue,
value: c['option_value'],
title: c['title'],
onChanged: (value) { setState(() {
_groupValue=value;
});
),
));
}
}
}
使用第一个代码它可以工作,但是使用第二个代码我只是看到了这些项目,但是当我单击单选按钮时什么也没有发生(尽管 onchanged 确实触发了,因为我试图打印值并且很好)我做错了什么?
解决方案
我在这里找到了解决方案: https ://www.didierboelens.com/2018/05/hint-5-how-to-refresh-the-content-of-a-dialog-via-setstate/
问题是我必须分离小部件并为收音机创建另一个有状态的小部件
推荐阅读
- python - NaN 值:我在从数据集中查找 MSE 时出错
- c++ - 为什么此代码在“Visual Studio 2017”中有效,但在“Visual Studio 6.0”中无效
- c++ - 如何使用 cmake 检查 C++ 中的 const 正确性
- javascript - 如何让我的按钮清除前两个表单,然后再次单击时清除最后一个表单?
- asp.net-mvc - 负载均衡器中断外部登录,因为重定向 uri 是 http(不是 https)
- python - “ValueError: Unknown layer: ...” 使用 Tensorflow 调用 copy.deepcopy(network) 时
- c - 计算一行文本中有多少个单词?(在 C 编程语言中)
- swift - 返回 true 的 void 函数中出现意外的非 void 返回值
- javascript - 在 ejs 文件中使用 js 文件中的函数
- regex - Elixir 中的正则表达式捕获组