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

如何获取用户点击的ListTile组件的标题字符串值?

解决ListView.builder中获取点击ListTile标题的问题

你的代码存在两个问题:一是onTap: Ingridients_Selected_x()会在组件构建时直接执行函数,而非点击时触发;二是没有将ListTile的标题参数传入目标函数。以下是修正后的实现方案:

1. 调整目标函数,接收字符串参数

先修改Ingridients_Selected_x函数,让它能接收并处理标题字符串:

void Ingridients_Selected_x(String selectedTitle) {
  // 在这里编写你需要的业务逻辑,比如打印标题、更新状态等
  print('选中的食材标题:$selectedTitle');
}

2. 修改ListView.builder的onTap回调

在itemBuilder中,用匿名函数包裹目标函数调用,同时传入当前ListTile的标题:

Expanded(
  child: ListView.builder(
    itemCount: displayed_add_ingridients_to_meal.length,
    itemBuilder: (context, index) {
      // 提前提取当前项的标题,简化代码
      final currentTitle = displayed_add_ingridients_to_meal[index].Ingridient_title!;
      return ListTile(
        // 点击时触发匿名函数,传入标题参数
        onTap: () => Ingridients_Selected_x(currentTitle),
        title: Text(currentTitle),
      );
    },
  ),
)

关键说明

  • 使用匿名函数() => Ingridients_Selected_x(currentTitle)作为onTap的回调,确保只有用户点击ListTile时才会执行目标函数
  • 提前提取currentTitle可以避免重复访问列表项的属性,让代码更简洁高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:18:11