即使我的小部件在使用GWT和UI Binder完成的页面上可见,我也会回复。
是否有类似于onAttach()
事件处理程序(在将窗口小部件添加到DOM时触发)的任何内容,与窗口小部件实际可见的时间有关吗?
我希望能够处理即使在显示窗口小部件时,因为有几种不同的方式使它可见,我想在窗口小部件上有一个可以处理此事件的地方。 / p>
由于
答案 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
}
}