2012-03-29 66 views
3

我有一個非常簡單的GWT應用程序,它收集一些數據並在用戶單擊「提交」時提供確認對話框。我創建一個com.google.gwt.user.client.ui.DialogBox,填充它,然後調用它的center()方法。居中GWT DialogBox不尊重「縮放」因素我的手機瀏覽器

在桌面Web瀏覽器中,對話框正確顯示居中。然而,在手機瀏覽器中,居中不考慮縮放。也就是說,如果我放大窗體,然後單擊提交,對話框將集中在整個頁面中......而不是我當前的實際視口。如果我已經放大很遠,對話框根本不可見。應用程序看起來已經死了,除非你聰明到可以縮小。大致相同的事情發生在iPhone和我的Android手機上。

效果可以從Google演示頁面http://gwt.google.com/samples/Showcase/Showcase.html#!CwDialogBox中看到將手機放在縱向,放大顯示對話框按鈕,然後單擊按鈕。該頁面將顯示爲凍結。你看不到彈出窗口,無法平移。你唯一能做的就是縮小。

我會很高興與任何解決方案在這裏。例如,對話可能會以某種方式集中在我的「有效」視口中。或者也許有什麼方法可以讓瀏覽器縮小範圍?

回答

1

那麼,我還沒有想出如何獲得有關實際視口的信息。也就是說,用戶在放大後可以看到的內容。但合理的解決方案是將對話框放在提交按鈕的頂部。由於他們只是點擊提交按鈕,它必須是一個明智的地方來顯示對話框。

int targetX = submitButton.getAbsoluteLeft() + (submitButton.getOffsetWidth() - dialogBox.getOffsetWidth())/2; 
int targetY = submitButton.getAbsoluteTop() + (submitButton.getOffsetHeight() - dialogBox.getOffsetHeight())/2; 
dialogBox.setPopupPosition(targetX, targetY);