我有包含一些元素的HTMLPanel
<g:HTMLPanel ui:field="panel">
<div>One</div>
<div>Two</div>
</g:HTMLPanel>
我还有一个CheckBox,用于设置面板的可见性。
@UiHandler("myCheckBox")
void doClick(ClickEvent event) {
panel.setVisible(!myCheckBox.getValue());
}
但是当我设置panel.setVisible(false)
时,内部div仍然是可见的。在firebug我的面板是
<div aria-hidden="false">
<div>One</div>
<div>Two</div>
</div>
和用户代理样式表有
div{
display:block;
}
为什么我的内部元素仍然可见,以及为什么HTML Panel不会消失。请解释一下。如果我的解决方案不是最好的,请给我更好的建议。
如果您将在<g:HTMLPanel ui:field="panel"> </g:HTMLPanel>
内部的ui.xml中直接编写HTML,GWT将不会嵌套它,因为它只嵌套GWT小部件。
所以从ui.xml中删除div并在IMPL类中使用:
HTML html = new HTML("<div>One</div> <div>Two</div>");
panel.add(html);