功能UIObject#setVisible(false)
上不同于?Widget#removeFromParent
此外,DialogBox#hide
只是对 wapper 的调用UIObject#setVisible(false)
吗?
有什么实际的例子吗?
功能UIObject#setVisible(false)
上不同于?Widget#removeFromParent
此外,DialogBox#hide
只是对 wapper 的调用UIObject#setVisible(false)
吗?
有什么实际的例子吗?
UIObject#setVisible
在元素上设置 CSS 'display' 属性。如果你有一个HTMLPanel
并调用 setVisible(false) ,它会导致这个
<div style="display:none">我的 HTML 面板!</div>
而 removeFromParent 将从页面的 DOM 中删除元素。同样,如果您有一个HTMLPanel
附加到您的页面主体并在其上调用 removeFromParent() ,您将从
< body>
<div >My HTML Panel !</div>
</body>
到
< body> < /body>
因此,一旦您从其父级中删除了一个小部件,如果您想再次显示它,则必须重新附加它。
至于你的第二个问题,我没有查看代码,DialogBox#hide
但我会说它可能会setVisible(false)
在某些时候调用,等等。
我发现 setVisible() 方法在隐藏嵌套演示者方面很有用。如果您想从您的一个页面中删除嵌套的演示者,在您的 onReset() 方法中,您可以执行以下操作:
if(mainPagePresenter.isVisible()){getView().getMenuBar().setVisible(false);}
else{getView().getMenuBar().setVisible(true);}
这样,您只需在所需页面上隐藏嵌套的演示者或任何其他演示者或小部件。您可以使用 removeFromParent() 方法执行此操作,但在用户导航事件中,您的对象不会被重新插入,因为您从页面的 DOM 中删除了对象。如果用户重新加载页面,它最终将通过调用 onReveal() 方法插入。因此,如果您只想“隐藏”某些面板 setVisible() 是可行的,否则如果您想永久删除对象 removeFromParent() 是您的选择。