如何在RadioListTile中同时展示两个列表的内容?
实现RadioListTile的title与subtitle分别对应两个列表元素
要让分割后的List1元素对应RadioListTile的title,List2元素对应subtitle,前提是分割后的List1长度和List2长度一致,以下是两种可行实现方式:
方法一:通过索引关联(无需额外依赖)
利用asMap()获取每个元素的索引,再通过索引从List2中取对应元素:
data.List1.split('.').asMap().entries.map((entry) { int index = entry.key; String titleText = entry.value; return RadioListTile( title: Text(titleText), // 若List2长度不足,可加空值判断避免报错 subtitle: List2.length > index ? Text(List2[index]) : null, // 需补充RadioListTile必填属性:value、groupValue、onChanged value: titleText, groupValue: selectedValue, onChanged: (value) { // 选中逻辑 }, ); })
方法二:使用IterableZip(需导入collection包)
先在pubspec.yaml中添加collection依赖,然后导入包后用IterableZip将两个列表的元素一一配对:
import 'package:collection/collection.dart'; // ... IterableZip([data.List1.split('.'), List2]).map((pair) { String titleText = pair[0]; String subtitleText = pair[1]; return RadioListTile( title: Text(titleText), subtitle: Text(subtitleText), // 补充必填属性 value: titleText, groupValue: selectedValue, onChanged: (value) { // 选中逻辑 }, ); })
注意事项
- 务必保证分割后的List1和List2长度匹配,否则会出现索引越界或配对错误的问题;
- RadioListTile的
value、groupValue、onChanged是必填属性,需要根据业务逻辑补充完整。
内容的提问来源于stack exchange,提问作者Jabu
相关产品推荐
相关产品推荐

