2012-06-14 58 views

回答

2

UIObject#setVisible設置CSS「顯示器」的元素的屬性。如果你有一個HTMLPanel並在其上調用調用setVisible(假的),這將導致該

< DIV風格=「顯示:無」>我的HTML面板! </div>

鑑於removeFromParent將從頁面的DOM中移除該元素。同樣,如果你有一個HTMLPanel連接到你的頁面的主體,並呼籲它removeFromParent(),你會從

< body> 
    <div >My HTML Panel !</div> 
</body> 

< body> < /body> 

所以一旦你從移除小工具它是家長,如果你想再次顯示它,你將不得不重新附加它。

至於你的第二個問題,我沒有看過DialogBox#hide的代碼,但我會說它可能在某些時候叫setVisible(false)等等。

+0

感謝。從UX角度來看,它們有什麼不同? – sof

+1

最終結果是:用戶不會再看到它們。所以不行。但是,如果使用setVisible(false),該元素仍然在頁面中。知道如何使用螢火蟲或Chrome的控制檯或任何其他插件的人可以改變元素的風格,並將其設置爲可見。 – jonasr

0

我發現隱藏嵌套主持人調用setVisible的有用的應用()方法。如果你想從你的網頁之一刪除嵌套主持人,你onReset()方法,你可以這樣做:

if(mainPagePresenter.isVisible()){getView().getMenuBar().setVisible(false);} 
    else{getView().getMenuBar().setVisible(true);}   

這樣,你只是隱藏嵌套的主持人或任何其他主持人或窗口小部件所需的頁面上。您可以使用removeFromParent()方法執行此操作,但是在用戶導航事件上,您的對象將不會被重新插入,因爲您已經移除了頁面的DOM對象。如果用戶重新加載頁面,它最終將通過調用onReveal()方法來插入。所以,如果你只想「隱藏」一些面板,setVisible()就是要走的路,否則如果你想永久刪除對象,removeFromParent()是你的選擇。