libGDX 反向actor事件处理

libGDX reverse actor eventHandling

我正在尝试在 libGDX 中创建一个通用的选项卡小部件。它包含一个按钮栏和一个窗格栏以及一个窗格视图。

假设标签小部件与屏幕一样大,并且我们有 3 个标签。按钮栏占据屏幕的顶部,窗格位于底部。 paneView 是一个用于事件处理的 WidgetGroup,它与 tabwidget 减去 buttonBar 一样大。

一切正常,直到我添加一个滚动窗格作为选项卡小部件。由于此 scrollPane 调用:

event.stop();

不调用后续事件。

由于事件 "bubble" 通过 actor 向上,最低级别的 actor 首先调用其 parents 和向上的兄弟姐妹的事件处理程序进行处理。这意味着滚动窗格总是在 tabwidget 之前处理。

有没有办法插入输入监听器的顺序?是否先处理选项卡输入,然后再处理滚动窗格输入?还是我必须重新实现滚动窗格处理程序才能解决此问题?

我认为你想要实现这个的方式是不可能的 - 演员怎么知道你正在表演的 fling 手势 是针对哪个?

我想到的解决方案是

在我看来,修改 libgdx 源通常不是一个好主意,但你当然可以这样做(通过从 Github 下载 LibGDX 并将其作为项目导入,你将可以访问所有资源)尽管在这种情况下绝对没有必要。