You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:14:58