是否有任何事件可以知道一个视图是否移动到其他视图下方?

Is there any event to know if a view is moved below some other view?

我有一堆视图彼此重叠显示。所以一次只显示 1 个视图,其他视图位于活动视图下方。我想知道 ViewPart 代码中某个特定视图是否处于活动状态或移动到其他视图下方。是否有任何听众可以告诉我任何视图的合成现在移动到另一个视图的其他一些合成下方?

另外,如果我可以通过听众知道某个特定视图现在不可见,那就太好了。 我只能访问我的视图代码,这就是为什么我必须只在该视图中实现它。 视图堆栈显示在一个 Window 下,因此父视图 shell 与所有视图相同。

您可以使用 org.eclipse.ui.IPartListener 来监听有关部件的事件。

ViewPart 中你可以使用:

getSite().getPage().addPartListener(partListener);

添加监听器。侦听器具有用于打开、关闭、激活和停用部件并置于堆栈顶部的方法。

您还可以使用 IPartListener2,它有一些额外的方法。