我如何监控在 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。
在我的 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。