如何创建一个覆盖屏障来捕获 onTap 事件,并将它们传递到后面的小部件?

bof*_*mer 5 flutter

我的问题是:如何创建一个“监视”并对点击手势做出反应而不消耗它们的小部件?


我想创建一个TextField在聚焦时在字段下方的弹出窗口中显示自动完成建议的窗口(类似于 Google 搜索)。

当用户点击屏幕外部时,覆盖层应该关闭TextField,但不消耗点击事件

例如,如果用户在建议叠加层可见时点击复选框,则叠加层应关闭并且复选框应切换。

我查看了 Flutter 的源代码DropdownButton,它在 a 中显示下拉项列表PopupRoute,可以通过点击屏幕来关闭该列表。在内部,PopupRoute创建一个屏幕填充ModalBarrier,用 a 捕获点击事件GestureDetector(但它消耗手势事件并且不传递它们)。

Rém*_*let 6

您可以使用GestureDetectorHitTestBehaviortranslusent

  • 谢谢,这引导我走向正确的方向,尽管仍然存在最终的点击事件仅针对前台小部件触发的问题。但是使用带有半透明 HitTestBehavior 的“Listener” eidget 是可行的! (2认同)