我想以一個甚至每當我的小部件可見與GWT和UI做粘結劑在頁面上做出迴應。有沒有辦法時,將顯示與GWT一個Widget講?
是否有類似於onAttach()
事件處理程序(將小部件添加到DOM時觸發),與小部件實際可見的時間有關?
我希望能夠處理即使所示的窗口小部件,因爲有使其可見的幾個不同的方法,我想在widget本身可以處理此事件一個地方。一旦添加到DOM,除非你有意隱藏它(與CSS即或躲在背後的另一個窗口小部件)
感謝
我想以一個甚至每當我的小部件可見與GWT和UI做粘結劑在頁面上做出迴應。有沒有辦法時,將顯示與GWT一個Widget講?
是否有類似於onAttach()
事件處理程序(將小部件添加到DOM時觸發),與小部件實際可見的時間有關?
我希望能夠處理即使所示的窗口小部件,因爲有使其可見的幾個不同的方法,我想在widget本身可以處理此事件一個地方。一旦添加到DOM,除非你有意隱藏它(與CSS即或躲在背後的另一個窗口小部件)
感謝
小部件應該是可見的。通常,onAttached()表示它在頁面上。如果您使用的CSS類使它可見,寫一個調用setVisible(布爾ISVISIBLE)方法窗口小部件,並設置能見度類這種方式。如果你有它背後的另一個窗口小部件(即層),那麼你就需要編寫你的決定時,它僅可見的邏輯。
有這個沒有瀏覽器的事件,但你可以試試這個:
有了您的小部件,你可以檢查元素getLeftOffset
(或類似的方法),如果你得到一個正值,你可以解僱你的方法,並設置一個標誌來表明你的方法已經被解僱了。
然後一旦getLeftOffset
返回0你可以重置你的國旗,準備再次發射你的事件。
我知道這是一個老問題,我之前都面臨着同樣的問題。我所做的就是重寫setVisible(boolean visible)
方法在小部件,然後執行任何我需要做的:
@Override
public void setVisible(boolean isVisible) {
super.setVisible(isVisible);
if(isVisible) {
// Do whatever you need to do with your widget
}
}
對,問題不在於小部件是不可見......這是我想當可見性發生變化時(例如:檢查用戶的登錄狀態),能夠從小部件內部執行任務。我想答案是,GWT的控件無法做到這一點。 – Cuga 2012-03-19 17:36:04
@cuga我不知道有任何這樣的瀏覽器事件。你必須自己設置GWT中的事件,並聽取它AFAIK。 – 2012-03-19 17:37:08