flutter - 如何在颤动中修复 RadioListTile 列表?
问题描述
我有一个这样的列表 List itemList = [ IdText(1,'hello'), IdText(2,'hallo'), IdText(3,'ciao') ]; 我想做一个radilisttile;我显示文本并将 ID 保存在地图中。但我有一个错误(所选按钮未着色),我该如何解决这个问题?这是我的代码如下:
for(IdText list in itemList)
RadioListTile(
title: Text(list.text),
groupValue: _map[item.fieldName],
onChanged: (value) {
setState(() {
_map[item.fieldName] = value.id;
});
print(_map[item.fieldName] );
},
value: list,
),
解决方案
您可以构建一个 customRadioGroup 来接收您的项目并处理更改。
class CustomRadioGroup extends StatefulWidget {
final Function(IdText) onValueSelected;
final List<IdText> items;
const CustomRadioGroup({Key key, @required this.onValueSelected,this.items})
: super(key: key);
@override
_CustomRadioGroupState createState() => _CustomRadioGroupState();
}
class _CustomRadioGroupState extends State<CustomRadioGroup> {
var selectedValue;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Container(
child: ListView.builder(
itemCount: widget.items.length,
itemBuilder: (context, position) {
return RadioListTile(
title: Text(widget.items[position].text),
groupValue: selectedValue,
onChanged: (value) {
setState(() {
selectedValue = value;
});
widget.onValueSelected(widget.items.firstWhere((element) => element.id==value));
},
value: widget.items[position].id);
}),
));
}
}
传递每次更改单选按钮选择时触发的 onValueSelected 回调函数。
class MyApp extends StatelessWidget {
final List<IdText> items = [ IdText(1,'hello'), IdText(2,'hallo'), IdText(3,'ciao') ];
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(accentColor: Colors.blue),
home: CustomRadioGroup(onValueSelected: onValueSelected, items: items),
);
}
onValueSelected(value) {
print(value);
}
}
推荐阅读
- mysql - 获取按日期分组的计数(列)的平均值,但满足某些条件
- c++ - 如何将 WM_LBUTTONUP 与 ON_WM_PARENTNOTIFY() 一起使用
- r - 更新后 geomorph readmulti.nts 无法正常运行
- php - 计算今天的记录
- python - 如何在 Windows 10 的 anaconda 环境中导入 vizdoom?
- python - 为什么 groupby 方法给出 NA 值?
- flutter - 无法在初始化程序中访问实例成员“文本”。尝试替换引用
- state - swiftui 无法更改接收器中的@State 值
- c++ - 为什么coroutine_handle的操作符bool销毁后返回true?
- java - AWS Appsync Graphql Java 客户端 - IAM 授权