GWT LayoutPanel子事件无法正常运行

时间:2018-10-18 19:54:29

标签: google-app-engine gwt

嗨,我遇到了GWT客户端的问题,即当小部件的父级(沿树的某个地方)使用GWT LayoutPanel或任何布局容器时,小部件无法接收事件。

这是带有简化代码的演示。

此代码有效:

    LayoutPanel layoutPanel = new LayoutPanel();

    layoutPanel.add(new SimplePanel());
    layoutPanel.add(new Button("Button1"));

    RootLayoutPanel.get().add(layoutPanel);

该按钮在悬停时突出显示,附加的ClickHandler接收事件。

但是下面的代码却没有。唯一的变化是将add()反转为layoutPanel顺序:

    LayoutPanel layoutPanel = new LayoutPanel();

    layoutPanel.add(new Button("Button1"));
    layoutPanel.add(new SimplePanel());

    RootLayoutPanel.get().add(layoutPanel);

按钮已绘制,但未调度任何事件,即使':hover'事件也未通过。检查生成的HTML,表明正在生成“ button”标记。

我正在使用GWT 2.8.2,Google Appengine 1.9.66和Java 8(为版本2和Java8 JRE配置的appengine-web.xml)。

我有一个更复杂的GUI,也遇到了同样的问题,我只是将其归结为上述示例来说明问题。

1 个答案:

答案 0 :(得分:3)

由于您没有为添加的小部件指定任何布局选项,因此实际上是将它们彼此叠加,因此在第二种情况下,该按钮位于简单面板的后面,该面板是透明的,因此我不会直观地隐藏按钮。