从 List.map() 获取迭代索引

2023-12-29

我在字母列表上编写了一个迭代,并使用“地图”类将内部卡片放在屏幕上。

在代码中,您可以看到我做了一行,并使用“map”将卡片上的所有用户板打印到屏幕上。我想在里面添加一些逻辑,所以我需要获取元素的 id(用于录制事件)。 有什么办法可以做到这一点吗?

实际上,我想通过 userBoard 获取元素的特定索引。

Code:

Widget build(BuildContext context) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      children: <Widget>[
            Row(
              children: userBoard
                  .map((element) => Stack(children: <Widget>[
                        Align(
                          alignment: Alignment(0, -0.6),
                          child: GestureDetector(
                            onTap: (() {
                              setState(() {
                                // print("element=${element.toString()}");
                                // print("element=${userBoard[element]}");
                              });
                            }),
                            child: SizedBox(
                              width: 40,
                              height: 60,
                              child: Card(
                                  shape: RoundedRectangleBorder(
                                    borderRadius: BorderRadius.circular(5.0),
                                  ),
                                  child: Center(
                                    child: Text(element,
                                        style: TextStyle(fontSize: 30)),
                                  )),
                            ),
                          ),
                        )
                      ]))
                  .toList(),
            )
          ],
        ),
}

Picture- 每张卡都是地图的“元素”。我想获取 onTap 函数的索引。 https://i.stack.imgur.com/2rzap.png


要访问索引,您需要使用以下命令将列表转换为地图:asMap https://api.dartlang.org/stable/2.2.0/dart-core/List/asMap.html操作员。

Example

final fruitList = ['apple', 'orange', 'mango'];
final fruitMap = fruitList.asMap(); // {0: 'apple', 1: 'orange', 2: 'mango'}

// To access 'orange' use the index 1.
final myFruit = fruitMap[1] // 'orange'

// To convert back to list
final fruitListAgain = fruitMap.values.toList();

你的代码

userBoard.asMap().map((i, element) => MapEntry(i, Stack(
  GestureDetector(onTap: () {
    setState(() {
      // print("element=${element.toString()}");
      // print("element=${userBoard[i].toString()}");
    });
  }),
))).values.toList();

参考其他答案

  • I like 这个答案 https://stackoverflow.com/a/58444027/272539更好的。请看一下。
  • 如果你想在多个地方尝试扩展像这样 https://stackoverflow.com/a/60502389/272539.
  • 或者,您也可以尝试飞镖收集方法 https://stackoverflow.com/a/68357576/272539.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 List.map() 获取迭代索引 的相关文章

随机推荐

  • Sitecore 是否自动使用快速查询?

    根据 Sitecore 数据定义参考 版本 6 4 第 4 3 1 节 Sitecore 使用以下方式处理查询 禁食技术成为可能 这可以 可以是 SQL 数据库 如果 数据提供者支持所请求的 查询 或在 Sitecore 数据中 经理 如果
  • c 数组中的峰值元素

    给我一个整数数组 我必须在其中找到一个巅峰元素 数组元素是峰值 如果不更小比它的邻居 对于角元素 仅考虑一个邻居 例如 对于输入数组 10 20 15 2 23 90 67 有两个峰值元素 20 和 90 我需要返回任何一个峰值元素 我尝试
  • Emacs 初始化为 org 文件:如何获得正确版本的 org-mode?

    我一直在尝试org babel 教程 http orgmode org worg org contrib babel intro html literate programming描述了如何将大部分 emacs init el 文件放入 o
  • @karate如何将参数传递给加特林模拟类中的特征文件?

    让我们考虑一个场景 我们必须运行 创建帐户 api 的性能测试 该测试将输入作为标头 路径参数 Auth token 并输入诸如用户帐户名称之类的数据 因此 对于上述场景 我们有 2 个功能文件 运行 POST 性能测试http baseU
  • 使用变量与使用数字

    想象一下这些版本中的函数 int faculty const unsigned int n return n 1 n n faculty n 1 int faculty const unsigned int n return n 1 1 n
  • 网站完全用 Flash 编写(或显示)。什么时候这不是一个好主意?

    来自这条推文 http twitter com azaaza status 6508524118 http twitter com azaaza status 6508524118我抵达了一个网站 http www invisiblecre
  • C++ 中的通用访问者基类模板 - 重载问题

    我认为编写通用访问者基类模板将是一个简单的练习 目标是能够写 typedef visitor
  • 从 TGridPanel 中删除控件

    我正在使用 TGridPanel 来管理多个面板 我创建面板并使用如下代码将它们添加到 GridPanel var pnl TPanel begin pnl TPanel Create GridPanel2 pnl Caption Pane
  • jQuery 为某些元素添加类

    我有一个像这样的多级菜单 ul li item 1 ul li item 1 1 li li item 1 2 li ul li li item 2 li li item 3 ul li item 3 1 li li item 3 2 li
  • 需要 span.class 和 p 来扩展切换

    我有一个作品集网页 当单击项目时 我需要在其中显示描述和 图像 标签 为此 我使用切换 javascript 我目前有这段代码 我希望在单击项目时 span class 和段落都展开 否则我希望这两个元素在页面上保持隐藏 现在我无法使 sp
  • CSS 禁用滚动

    我在我们的一个网站上遇到了一个问题 在 IE9 中 页面有一个垂直滚动条 但不能使用鼠标滚轮 方向键 pgup pgdwn 进行滚动 滚动的唯一方法是实际单击 按住并移动滚动条 我从CSS中删除了以下内容 overflow x hidden
  • 如何创建类似于 Mail 或 Facebook 应用程序中的“收件人”字段?

    有谁知道如何创建像 Mail 或 Facebook 应用程序中那样的 收件人字段 从 A Z 列表添加地址时 表示该地址的蓝色组件将添加到文本字段 有没有提供这个功能的类 还是需要我们自己实现 没有内置框架 您需要自己实现它或使用开源组件之
  • 执行 git apply 时出现错误“删除 1 个前导路径名组件时 git diff header 缺少文件名信息”

    我通过命令创建了一个 diff 文件 git no pager diff no index stat pathA pathB gt diff log 接下来 我执行了一个命令 git apply index ignore space cha
  • 如何使用静态 C++ 库扩展 Lua?

    我有一个使用 Lua 5 2 1 的 Visual Studio 2008 C 03 应用程序 我想用一个名为 foo 的模块扩展Lua 但是当我调用require foo 在我的 Lua 脚本中 我收到错误 foo test lua 1
  • 我可以将 EJB Stateless Bean 与 CDI 一起使用来维护用户会话吗?

    基于这篇文章http www adam bien com roller abien entry ejb 3 1 killed the http www adam bien com roller abien entry ejb 3 1 kil
  • ngserve 命令首先显示错误,最后编译成功

    我使用最新的 Angular 版本在我的计算机上本地设置了 Angular 项目 每当我使用 CLI 命令作为 ng 服务运行该项目时 它都会首先以红色显示错误 这是一个用于测试或调试 Angular 应用程序的简单服务器 本地 尚未经过安
  • 将图像添加到导航项的标题

    我想在导航栏标题的左侧添加一个徽标 title 属性似乎只接受 NSString 将图像添加到导航栏的最佳方法是什么 您可以将标题视图替换为如下图像 navigationItem titleView UIImageView alloc in
  • conda-forge 存储库是否需要 Anaconda 商业版许可证?

    我认为在 Anaconda 最近的许可证变更之后我需要获得 Anaconda 的商业许可证 不过我很好奇 访问 conda forge 存储库是否需要商业许可证 因为它是社区存储库 或者这仅适用于主要的 anaconda 存储库 我一直无法
  • PHP Readfile 方法的安全问题

    嘿 使用时有什么安全问题需要担心吗readfilePHP 中的方法 我想使用 readfile 方法来获取存储在各种第三方服务器上的文件的 URL 然后我将文件提供给用户 直观上 似乎存在风险 因为 URL 可以指向任何文件 另一方面 我只
  • 从 List.map() 获取迭代索引

    我在字母列表上编写了一个迭代 并使用 地图 类将内部卡片放在屏幕上 在代码中 您可以看到我做了一行 并使用 map 将卡片上的所有用户板打印到屏幕上 我想在里面添加一些逻辑 所以我需要获取元素的 id 用于录制事件 有什么办法可以做到这一点