1

对于菜单实现,我在 a 上添加了一个 clickhandler FocusPanel,其中包含一个标签。单击FocusPanel打开一个VerticalPanel,带有几个其他标签,每个标签都有 ClickHandlers。单击其中一个标签会更改FocusPanel. 这部分工作正常。VerticalPanel但由于某种原因,单击标签后我无法隐藏。

关于什么可能是错的任何想法?

我添加了一些系统输出,它告诉我面板实际上是隐藏的,顶部位置 = 0。但是,它不会在屏幕上消失(在 FF 和 Chrome 中测试)。

final VerticalPanel popupPanel = new VerticalPanel();
    popupPanel.setVisible(false);
    popupPanel.setStyleName("popupGreen");
    for (int i = 0; i < options.length; i++) {
        final Label option = new Label();
        final String text = options[i];
        option.setText(text);
        if (text.equals(chosen)) {
            option.addStyleName("selected");
        }
        option.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                textBox.setText(text);
                popupPanel.setVisible(false);
                popupPanel.getElement().getStyle().setProperty("display", "none");
                System.out.println(popupPanel.isVisible());
                System.out.println(popupPanel.getAbsoluteTop());
            }

        });
        popupPanel.add(option);
    }
    verticalPanel.add(popupPanel);
4

1 回答 1

1

如果VerticalPanel是 在FocusPanel那么 click 事件将冒泡并且ClickHandleronFocusPanel将再次设置VerticalPanel可见。

于 2013-05-08T10:15:45.233 回答