flutter - 如何在点击检测中跳过 Flutter Widget?

标签 flutter

我正在尝试使用 ListTile 制作一个模态底部工作表,其中包含 Checkbox 作为主要小部件。但是,Checkbox 将接收点击事件而不是 ListTile,现在显示图 block 的墨水波纹效果,并使我实现两个 onTap/onChanged 回调。

我尝试不实现 CheckboxonChanged 回调并将其包装在 AbsorbPointer 小部件周围,但是在这两种情况下 ListTile 也不会获取点击事件。

return ListTile(
  onTap: onTap,
  title: Text("Show expired schedules"),
  leading: Checkbox(value: snapshot.data, onChanged: (_) => onTap()),
);

我想以某种方式使Checkbox不可点击,但让ListTile仍然接收点击事件。有点像 AbsorbPointer,只不过跳过一个 Widget,不完全吸收点击事件。

最佳答案

将您的 Checkbox 小部件包裹在 IgnorePointer 小部件内,它应该可以工作:

return ListTile(
  onTap: onTap,
  title: Text("Show expired schedules"),
  leading: IgnorePointer(child: Checkbox(value: snapshot.data, onChanged: (_) => onTap())),
);

关于flutter - 如何在点击检测中跳过 Flutter Widget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55423737/

相关文章:

flutter - 用 flutter 在黑暗模式下切换图像

Flutter RenderFlex 在 Column Widget 内部右侧溢出 15 个像素

flutter - 如何从Flutter中的另一个类传递的函数获取返回值?

Flutter:wasm 流编译失败:TypeError:无法下载 wasm 模块

Flutter 如何向用户显示 FPS(每秒帧数)?

flutter - 轻按设备的物理后退按钮时如何执行功能?

flutter - Dart throw 和重新 throw 有什么区别?

firebase - Flutter:对Firebase的CRUD澄清

android - 将下拉按钮添加到选项卡时,只能在初始化程序中访问静态成员

flutter - dart中字符串的数学表达式