我如何监控在 Flutter 中选择了哪个 ListView 项目?

How do i monitor which ListView item is selected in Flutter?

在我的 listView 中,我将 itemBuilder 值设置为自定义小部件

Widget programsRowWidget(BuildContext context, List<MembershipPrograms> programs) {
return Expanded(
  child: ListView.builder(
    scrollDirection: Axis.horizontal,
    shrinkWrap: true,

    itemCount: programs.length,
    itemBuilder: (context, index) {
      return UsersProgramListItem(program: programs[index]);
    }
  ),
);

在该小部件中,根元素是 Card,其子元素是 InkWell。我想用它的 onTap 属性 来控制项目是否被选中。如何监控listView中的哪个item是从上面显示的parent widget中的listView中选择的,如何只允许选择一个item?

  • 如何监控从上面显示的父窗口小部件中的 listView 中选择了 listView 中的哪个项目

您可以使用 bool 标记,例如 isSelected 和 isSelectable,它们会在构建器函数中传递给小部件。主要方面是将选择逻辑从 ListView.builder 分离到上部小部件或元素的对象。

  • 如何只允许选择一项?

使用旗帜。选择一项时 - 可以将其他项可选择的标志设置为 false。