2012-03-19 70 views
1

我想以一個甚至每當我的小部件可見與GWT和UI做粘結劑在頁面上做出迴應。有沒有辦法時,將顯示與GWT一個Widget講?

是否有類似於onAttach()事件處理程序(將小部件添加到DOM時觸發),與小部件實際可見的時間有關?

我希望能夠處理即使所示的窗口小部件,因爲有使其可見的幾個不同的方法,我想在widget本身可以處理此事件一個地方。一旦添加到DOM,除非你有意隱藏它(與CSS即或躲在背後的另一個窗口小部件)

感謝

回答

0

小部件應該是可見的。通常,onAttached()表示它在頁面上。如果您使用的CSS類使它可見,寫一個調用setVisible(布爾ISVISIBLE)方法窗口小部件,並設置能見度類這種方式。如果你有它背後的另一個窗口小部件(即層),那麼你就需要編寫你的決定時,它僅可見的邏輯。

+0

對,問題不在於小部件是不可見......這是我想當可見性發生變化時(例如:檢查用戶的登錄狀態),能夠從小部件內部執行任務。我想答案是,GWT的控件無法做到這一點。 – Cuga 2012-03-19 17:36:04

+0

@cuga我不知道有任何這樣的瀏覽器事件。你必須自己設置GWT中的事件,並聽取它AFAIK。 – 2012-03-19 17:37:08

0

有這個沒有瀏覽器的事件,但你可以試試這個:

有了您的小部件,你可以檢查元素getLeftOffset(或類似的方法),如果你得到一個正值,你可以解僱你的方法,並設置一個標誌來表明你的方法已經被解僱了。

然後一旦getLeftOffset返回0你可以重置你的國旗,準備再次發射你的事件。

0

我知道這是一個老問題,我之前都面臨着同樣的問題。我所做的就是重寫setVisible(boolean visible)方法在小部件,然後執行任何我需要做的:

@Override 
public void setVisible(boolean isVisible) { 
    super.setVisible(isVisible); 
      if(isVisible) { 
       // Do whatever you need to do with your widget 
    } 
} 
相關問題