Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以判断小部件何时与GWT一起显示?_Gwt_Uibinder - Fatal编程技术网

有没有一种方法可以判断小部件何时与GWT一起显示?

有没有一种方法可以判断小部件何时与GWT一起显示?,gwt,uibinder,Gwt,Uibinder,即使我的小部件在使用GWT和UI活页夹完成的页面上可见,我也希望响应一个请求 是否有类似于onAttach()事件处理程序(当小部件添加到DOM时触发)的内容,与小部件实际可见的时间有关 我希望即使在显示小部件时也能够处理事件,因为有几种不同的方式使其可见,并且我希望小部件上有一个单独的位置可以处理此事件 感谢小部件添加到DOM后应该是可见的,除非您有意将其隐藏(即使用CSS或将其隐藏在另一个小部件后面)。通常,onAttached()表示它在页面上的位置。如果您使用CSS类使其可见,请在您的小

即使我的小部件在使用GWT和UI活页夹完成的页面上可见,我也希望响应一个请求

是否有类似于
onAttach()
事件处理程序(当小部件添加到DOM时触发)的内容,与小部件实际可见的时间有关

我希望即使在显示小部件时也能够处理事件,因为有几种不同的方式使其可见,并且我希望小部件上有一个单独的位置可以处理此事件


感谢

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

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

使用小部件,您可以检查元素
getLeftOffset
(或类似方法),如果您得到一个正值,您可以启动您的方法,并设置一个标志来指示您的
onVisible()
方法已启动


然后,一旦
getLeftOffset
返回0,您就可以重置标志,准备再次触发事件

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

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

对,问题不是小部件不可见。。。我希望当窗口小部件的可见性发生变化时(例如:检查用户的登录状态),能够从窗口小部件内部执行操作。我想答案是,GWT的控件无法在开箱即用的情况下执行此操作。@cuga我不知道有任何此类浏览器事件。您必须自己在GWT中设置事件,并仔细聆听。