2011-06-28 63 views
3

我正在使用GWT創建一個Web應用程序。我的基本面板是一個RootLayoutPanel,並且我在其上添加了一個DockLayoutPanel,在該面板上附加了我的組件(聊天,表格等)。GWT中的DockLayoutPanels調整大小和滾動問題

我的問題在於更改瀏覽器窗口大小。我希望我的頁面只能調整到某個最小尺寸,然後我希望滾動條變爲活動狀態。

我試圖使用溢出和最小寬度的CSS屬性,但它似乎不工作:如果我設置我的DockLayoutPanel最小寬度:800px(例如)面板將完全可見,直到我的瀏覽器窗口具有800px的寬度,這是正確的,但如果我再次減小窗口大小,則滾動條不會激活,並且不能以任何方式查看面板的更多外部部分。

我希望我對我的解釋已經夠清楚了。感謝您的建議。

回答

3

不能確定它仍然會有所幫助,但我遇到類似的問題,發現了這樣的解決方案 - 如http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html#Resize GWT文檔中提到的我已經添加到我的根html頁面類似這樣的標記:

<body> 
.. 
<div id="main" ></div> 
.. 
</body> 

然後在onModuleLoad方法代替將面板等:

interface Binder extends UiBinder<Widget, BasicApp> { } 
private static final Binder binder = GWT.create(Binder.class); 

public void onModuleLoad() { 
    DockLayoutPanel outer = binder.createAndBindUi(); 
    RootLayoutPanel.get().add(outer); 
} 

我這樣做的:

public void onModuleLoad() { 
    DockLayoutPanel outer = binder.createAndBindUi(); 
    LayoutPanel panel = new LayoutPanel(); 
    panel.add(outer); 
    RootPanel.get("main").add(panel); 
    panel.setSize("800px", "800px"); 
} 

請注意,您必須明確設置面板的大小,網頁上正常顯示。 當面板大小超過窗口大小時,您現在應該像在任何其他網頁上一樣滾動。

+0

我現在沒有我的電腦,所以我無法在我的代碼上測試它,但是您寫的內容確實很有意義。非常感謝你的回答。 – dostoevskij

0

嘗試

RootLayoutPanel().get().add(new ScrollPanel(dockLayoutPanel)); 
+0

我認爲DocLayoutPanel不能包含在ScrollPanel中 – Erick

+0

對不起,它似乎不起作用。實際上,它根本不可視化內部DockLayoutPanel。 – dostoevskij