我正在尝试使用包含ListTile
作为主要小部件的Checkbox
来制作模态底部工作表。但是,Checkbox
会收到轻敲事件,而不是ListTile
,这将显示图块的墨水波纹效果,并使我实现两个onTap
/ onChanged
回调。>
我尝试不实现Checkbox
的{{1}}回调并将其包装在onChanged
小部件周围,但是在这两种情况下,AbsorbPointer
也不会获得点击事件。
ListTile
我想以某种方式使return ListTile(
onTap: onTap,
title: Text("Show expired schedules"),
leading: Checkbox(value: snapshot.data, onChanged: (_) => onTap()),
);
不可被点击,但是让Checkbox
仍接收到点击事件。类似于ListTile
,只是跳过一个Widget,而不是完全吸收tap事件。
答案 0 :(得分:1)
将Checkbox
小部件包装在IgnorePointer
小部件中,它应该可以工作:
return ListTile(
onTap: onTap,
title: Text("Show expired schedules"),
leading: IgnorePointer(child: Checkbox(value: snapshot.data, onChanged: (_) => onTap())),
);
答案 1 :(得分:0)
您也可以使用AbsorbPointer
来做到这一点
return ListTile(
onTap: onTap,
title: Text("Show expired schedules"),
leading: AbsorbPointer(
absorbing: _condition, // bool value, true makes it absorb touch event on CheckBox still making ListTile tappable.
child: Checkbox(value: snapshot.data, onChanged: (_) => onTap()),
),
);