2013-07-26 33 views
0

我使用​​爲某些元素創建上下文菜單;菜單本身將會相當大和複雜。我期望做的是有一個按鈕列表,加上一個圖片和一些文字,與被點擊的元素相關。GWT - PopupPanel,翻轉時更改佈局

我的問題是,我想按鈕總是直接顯示在單擊元素下,因爲這對用戶很方便;問題是當​​靠近屏幕的邊緣時,它會自動將位置改變爲完全可見,而不像往常一樣將其左側對齊元素。我這種行爲,但它移動了按鈕的位置。

所以我想要發生的是:通常按鈕在面板的左側,其他的東西在右側。當面板靠近屏幕右側時,我希望按鈕位於右側(因此位於點擊元素下方),而其他位於左側。

有沒有一種聰明的方式來做到這一點,無論是在GWT或更好的,只使用CSS?​​本身似乎並沒有告訴你它什麼時候會翻轉,可悲。我目前唯一的解決方案是在顯示彈出窗口之前手動檢查彈出窗口的位置和寬度並進行相應的調整,但我希望有更好的解決方案。

+0

你試過位置回調了嗎?方法:setPopupPositionAndShow(PopupPanel.PositionCallback callback); – gbazin

+0

我知道這種方法,但你建議我用它做什麼?所有讓我做的就是設置彈出窗口的位置。 – Marconius

回答

0

這裏是我有什麼建議(根據我自己實現一個類似用途的情況下):

  • 有位置的回調實現接受引用(在構造函數):
    • PopupPanel元素
    • 元素上的用戶權利cliked
    • 您放入PopupPanel的內容
  • 複製(我知道這不會幹,但執行是包專用)從默認位置回調代碼
  • 當打開向右調用改變你的內容(基於CSS或其他方式)的佈局

的方法我希望它有幫助。如果你發現更好的東西,讓我知道。

+0

對不起,我實際上並不明白你在這裏提出的建議。你可能會添加一些示例代碼或這樣的澄清? – Marconius