有没有办法告诉Widget何时显示GWT?

时间:2012-03-19 16:27:14

标签: gwt uibinder

即使我的小部件在使用GWT和UI Binder完成的页面上可见,我也会回复。

是否有类似于onAttach()事件处理程序(在将窗口小部件添加到DOM时触发)的任何内容,与窗口小部件实际可见的时间有关吗?

我希望能够处理即使在显示窗口小部件时,因为有几种不同的方式使它可见,我想在窗口小部件上有一个可以处理此事件的地方。 / p>

由于

3 个答案:

答案 0 :(得分:0)

一旦添加到DOM中,窗口小部件应该是可见的,除非您有意隐藏它(即使用CSS或将其隐藏在另一个窗口小部件后面)。通常,onAttached()表示它在页面上。如果您正在使用CSS类使其可见,请将 setVisible(boolean isVisible)方法写入窗口小部件,并以这种方式设置可见性类。如果你将它放在另一个小部件后面(即分层),那么你需要编写唯一的逻辑来确定它何时可见。

答案 1 :(得分:0)

此处没有浏览器事件,但您可以尝试:

使用您的小部件,您可以检查元素getLeftOffset(或类似方法),如果获得正值,则可以触发方法,并设置一个标记以指示您的onVisible()方法具有烧成。

然后,一旦getLeftOffset返回0,您就可以重置旗帜,准备再次发射你的事件。

答案 2 :(得分:0)

我知道这是一个老问题,我以前遇到过同样的问题。我所做的是覆盖小部件中的setVisible(boolean visible)方法,然后执行我需要做的任何事情:

@Override
public void setVisible(boolean isVisible) {
    super.setVisible(isVisible);
            if(isVisible) {
                // Do whatever you need to do with your widget
    }
}
相关问题