Для реализации меню я добавил обработчик щелчка на FocusPanel
, содержащий метку. При нажатии на FocusPanel
открывается VerticalPanel
с несколькими другими надписями, каждый из которых имеет ClickHandlers. Нажатие на один из этих меток изменяет метку в FocusPanel
. Эта часть работает нормально. Но по какой-то причине я не могу скрыть VerticalPanel
после нажатия на ярлык.GWT clickhandler не скрывает свою собственную панель
Любые идеи относительно того, что может быть неправильным?
Я добавил несколько sysout, которые говорят мне, что панель на самом деле скрыта, с верхним расположением = 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);
спасибо. Перемещение панели за пределы FocusPanel решило проблему. –
Или вы можете 'event.stopPropagation()' когда вы обрабатываете щелчок на уровне 'VerticalPanel'. –