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