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

Dan*_*aru 2 flutter

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

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

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

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

die*_*per 5

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

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