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

Flutter应用中如何为ListView.builder生成的每个ListTile设置不同名称

Flutter 实现自定义命名ListTile列表的方案

你现有代码的绑定逻辑已经符合要求,仅需调整数组内容即可实现每个列表项展示独立自定义名称,具体调整方式如下:

1. 替换为自定义命名数组

如果需要完全自定义每个列表项的名称,直接定义字符串数组填入对应名称即可:

// 替换原有自动生成的items数组,按需填入100个独立名称即可
final List<String> items = [
  "第一章 基础入门",
  "第二章 环境配置",
  "第三章 核心语法",
  // 依次补充剩余97个自定义名称
];

如果名称有统一规则,可直接调整生成逻辑批量生成100个符合要求的名称:

// 示例:生成100个「第X章 章节名称X」格式的名称
final items = List<String>.generate(100, (i) => "第${i+1}章 章节名称${i+1}");

2. 绑定逻辑说明

ListView.builder的itemBuilder回调会在渲染每一个列表项时,自动传入当前项的下标index,直接通过items[index]就能取出数组对应位置的名称,赋值给ListTile的title属性即可,你提供的示例代码本身的绑定逻辑是完全正确的。

3. 完整可运行参考代码

import 'package:flutter/material.dart';

class ChapterListPage extends StatelessWidget {
  // 自定义命名数组,长度为100满足需求
  final items = List<String>.generate(100, (i) => "第${i+1}章 章节${i+1}");

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('章节索引'),
      ),
      body: ListView.builder(
        padding: const EdgeInsets.all(8),
        itemCount: items.length,
        itemBuilder: (BuildContext context, int index) {
          return ListTile(
            // 绑定当前下标对应的数组内容
            title: Text(items[index]),
            // 可按需添加点击事件等扩展功能
            onTap: () {
              ScaffoldMessenger.of(context).showSnackBar(
                SnackBar(content: Text('你选中了${items[index]}'))
              );
            },
          );
        },
      ),
    );
  }
}

内容的提问来源于stack exchange,提问作者Mike Osborn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:54:03