flutter - UI颤动上未选择的RadioListTile列表
问题描述
我正在构建一个问答应用程序。当我成功获取数据并显示每个问题的 RadioListTile 列表时,包括答案(A,B)。但是当我选择进入电台时。它不反映对 Ui 的更改意味着它不选择按下的单选按钮。我的代码在这里:
class CauHoiModel{
int id;
String dapAn;//A, B, C, D
QuestionModel({this.id, this.dapAn});
}
class QuestionListState extends State<QuestionList>{
List<CauHoiModel> _list = [];
@override
void initState() {
for(var i = 0; i < widget.questions.length; i++){
_list.add(CauHoiModel(id: widget.questions[i].id, dapAn: ""));
}
super.initState();
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Column(
children:[
Expanded(
child: ListView.builder(
itemCount: widget.questions.length,
itemBuilder: (context, index) {
return Container(
padding: EdgeInsets.all(10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("Câu ${index+1} " + widget.questions[index].title,
style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold)
),
RadioListTile(
title: Text(widget.questions[index].ABCD.answerA.value),
value: CauHoiModel(id: widget.questions[index].id, dapAn: "A"),
groupValue: _list[index],
onChanged: (value) {
setState(() {
_list[index] = value;
});
},
),
RadioListTile(
title: Text(widget.questions[index].ABCD.answerB.value),
value: CauHoiModel(id: widget.questions[index].id, dapAn: "B"),
groupValue: _list[index],
onChanged: (value) {
setState(() {
_list[index] = value;
});
},
),
],
)
);
},
),
),
Text(
"$soPhut",
style: TextStyle(fontSize: 25, color: Colors.red),
)
]
)
);
}
}
解决方案
它需要selected
设置属性。
简单地说,定义一个地图(或尽力而为)来存储答案,然后设置选定的属性RadioListTile
var answers = Map();
RadioListTile(
...
selected : answers[index] == "A",
onChanged : (value) {
setState(() {
...
answers[index] = "A";
});
},
),
RadioListTile(
...
selected : answers[index] == "B",
onChanged : (value) {
setState(() {
...
answers[index] = "B";
});
},
),
推荐阅读
- python - Python数据存储方法
- docker - 如何在 Dockerfile 中提取 Docker 映像?
- angular - Jasmine 单元测试,ActivatedRoute 上的 .subscribe 问题
- php - 在PHP中获取python程序的运行状态
- c# - 播种 ServiceStack 数据库
- serial-port - 提示硬线返回 fcntl:无效参数
- scala - 将scala列表转换为数组
- mesos - 在 Aurora 和 Mesos 上部署 Heron 调度程序文件时如何找到它?
- python - Pythoncom - 如何收听 Outlook 传出消息?
- arduino - 来自 Arduino (ESP8266WiFi) 的 Web2Py GET 请求