RequestBuilder回调后GWT按钮没有响应

RequestBuilder回调后GWT按钮没有响应,gwt,Gwt,GWT 2.5.1;将Eclipse4.2与GPE结合使用 使用UiBinder指定的UI 该应用程序会弹出一个包含“Go”按钮的启动屏幕。该按钮的点击处理程序进行各种初始化,包括隐藏自身和显示其他三个按钮、图像和文本;它还通过RequestBuilder启动服务器请求(XMLHttpRequest)。RequestBuilder回调使用返回的服务器数据在画布元素中绘制条形图 单击“Go”按钮后,浏览器窗口与预期的一样,具有上述所有视觉元素。但这三个按钮对点击没有反应。不仅它们的处理程序没有被调

GWT 2.5.1;将Eclipse4.2与GPE结合使用
使用UiBinder指定的UI

该应用程序会弹出一个包含“Go”按钮的启动屏幕。该按钮的点击处理程序进行各种初始化,包括隐藏自身和显示其他三个按钮、图像和文本;它还通过RequestBuilder启动服务器请求(XMLHttpRequest)。RequestBuilder回调使用返回的服务器数据在画布元素中绘制条形图

单击“Go”按钮后,浏览器窗口与预期的一样,具有上述所有视觉元素。但这三个按钮对点击没有反应。不仅它们的处理程序没有被调用,当鼠标点击它们时,它们也不会显示激活的轻微视觉指示。浏览器没有冻结;e、 例如,如果调整窗口大小,则调用应用程序的调整大小处理程序

基于日志记录:“Go”按钮处理程序返回后,将执行RequestBuilder回调;然后“什么也不发生”,即不再有日志输出(除非我调整窗口大小)


FWIW这是我第一次尝试GWT。

通过实验,我找到了部分答案。在ui.xml文件中声明了三个非响应按钮,其中{style.hidden}引用了my.css中的visibility:hidden属性。在java代码中,我使用以下命令取消隐藏这些按钮:

protected void showElement(Element e) {
  e.removeClassName(style.hidden());
  }
显然,以隐藏的方式开始生命,然后以这种方式显示生命,不足以激活按钮。我正要去研究为什么会这样,但只要我没有发表评论表明我不那么无知,这个“小”问题的答案仍然是受欢迎的。

(评论太长了)

我刚刚发现这个问题与我在同一个位置上有按钮有关,在给定的时间里,只有某些按钮应该是可见的。换句话说,用户将在第一页的相同位置看到:

ButtonA ButtonB ButtonC


问题在于,无论可见性如何,上述三种显示中最后一种显示的z索引(实际上)都更高,并且是唯一对鼠标有响应的显示。因此,我正要实现一个解决方案,在显示/隐藏按钮组的代码中显式设置div z索引

您能在UiBinder文件而不是Java代码中设置按钮的位置吗?将它们放置在水平面板中,它们将自动隔开


与其在元素级别交互隐藏按钮,不如使用setVisible(true)调用按钮实例;e、 例如,buttonA.setVisible(true)

需要一些代码。没有它,只是猜测;)@AndreaBoscolo我理解,但我不知道该提供什么代码。ui.xml和两个可能相关的java源文件总共约1500行。我想一些经过教育的猜测是我所能期望的最好的:什么样的错误可能会导致问题?正如问题“UiBinder指定的UI”中所指出的,间距/布局没有问题。setVisible使用“display”元素属性,在我的例子中,这会产生影响布局的不良效果。好的。我误读了你的一条回复:“我刚刚发现问题与我在同一位置有按钮有关,在给定的时间内只有某些按钮应该是可见的。”我之前的评论中指出的解决方案很好。无论何时显示/隐藏包含按钮组的div,我都会添加/删除z-index:9999的样式,以及删除/添加可见性:hidden的样式。
ButtonD ButtonE ButtonF
BigButtonG (as wide either of the preceding groups)