2012-01-02 51 views
1

它看起來像你必須指定除一個子面板以外的所有絕對大小。例如,從GWT docsGWT的DockLayoutPanel與瀏覽器確定一些子面板的大小?

DockLayoutPanel p = new DockLayoutPanel(Unit.EM); 
p.addNorth(new HTML("header"), 2); 
p.addSouth(new HTML("footer"), 2); 
p.addWest(new HTML("navigation"), 10); 
p.add(new HTML(content)); 

但我想通過瀏覽器大小北方面板。我在裏面放了一些文字或按鈕,我不知道它的大小,我只知道它比較薄,並且在頁面頂部。我希望內容佔用剩下的空間,但不要再多了,所以沒有瀏覽器滾動條。有沒有辦法用這些新的佈局面板來處理這個問題?

現在,我使用的是舊板,我也附有Window.addResizeHandler處理程序,其中規定的主要內容區域的高度,使一切內Window.getClientHeight

更新適合:

托馬斯提出了一個DockLayoutPanel裏面HeaderPanel,但是這不是爲我工作:

<g:HeaderPanel> 
<g:Label>Header top</g:Label> 
<g:DockLayoutPanel unit='PX'> 
    <g:west size='300'> 
    <g:Label>West</g:Label> 
    </g:west> 
    <g:center> 
    <g:Label>Center</g:Label> 
    </g:center> 
</g:DockLayoutPanel> 
</g:HeaderPanel> 

「頭球攻門頂」是有的,休息不可見。它看起來像內部divs獲得0高度。

+0

嗨,你找到任何解決方案嗎?我試圖做同樣的事情,我已經在這個問題上浪費了太多時間。乾杯。 – Guillaume 2013-01-29 08:10:25

+0

我想我不得不使用調整大小處理程序,並手動計算和調整自己的事情。我已經遺棄了GWT。 – 2013-01-29 17:13:37

+0

感謝您的更新。我希望我可以做同樣的事情:) – Guillaume 2013-01-30 07:08:33

回答

1

你應該把一個DockLayoutPanel(爲西部和中部地區,可能是南方一個太多,如果你不希望它利用其自然高度)在HeaderPanel(用於北方自然上漿地區)

+0

我將對此進行試驗並在此處報告。 'HeaderPanel'可以自己做我想做的事情,但乍一看它並不實現'ProvideResize',我認爲它不能包含'DockLayoutPanel'。 – 2012-01-03 16:49:49

+0

是的,它沒有實現'ProvideResize',因爲它沒有調整它的頁眉和頁腳小部件;但是如果它實現了'RequiresResize',它會在它的中心部件上調用setSize()。 – 2012-01-03 17:03:02

+0

這工作,謝謝。現在我需要將高度限制傳播到該內容區域內的ScrollPanel,但是如果我無法弄清楚這將是一個不同的SO問題...... – 2012-01-05 00:24:31