HTMLPanel 在 GWT 中的 setVisible(false) 之后不会消失



我有包含一些元素的HTMLPanel

<g:HTMLPanel ui:field="panel">
   <div>One</div>
   <div>Two</div>
</g:HTMLPanel>

我还有一个复选框,可以设置面板的可见性。

 @UiHandler("myCheckBox")
    void doClick(ClickEvent event) {
       panel.setVisible(!myCheckBox.getValue());
    }

但是当我设置panel.setVisible(false)时,内部div 仍然可见。在火虫中,我的面板是

<div aria-hidden="false">
   <div>One</div>
   <div>Two</div>
</div>

和用户代理样式表有

div{
   display:block;
}
为什么

我的内部元素仍然可见,为什么HTMLPanel不消失。请解释一下。如果我的解决方案不是最好的,请给我更好的建议。

如果你直接在 ui 中编写 HTML.xml在 <g:HTMLPanel ui:field="panel"> </g:HTMLPanel> 中 GWT 不会嵌套它,因为它只嵌套 GWT 小部件。

所以从 ui 中删除你的div.xml并在你的 IMPL 类中使用这个:

HTML html = new HTML("<div>One</div> <div>Two</div>");
panel.add(html);

最新更新