2012-11-13 70 views
0

我無法設置簡單的佈局。我想要一個垂直面板下面的畫布。喜歡的東西:創建一個簡單的垂直佈局?無法填充所有空間

VerticalPanel parent = new VerticalPanel(); 
parent.setWidth("100%"); 
parent.setHeight("100%"); 

HorizontalPanel hp = new HorizontalPanel(); 
hp.setWidth("100%"); 
parent.add(hp); 

Canvas canvas = Canvas.createIfSupported(); 
canvas.setWidth("100%"); 
canvas.setHeight("100%"); 
parent.add(canvas); 

所以基本上我想要的頂部面板上的「馬力」爲內容需要它來定,而頁面的其餘部分應充滿canvas元素是唯一的那樣高。但是我得到了奇怪的效果,畫布似乎只填充了屏幕的一部分等等。它在佈局後報告它的高度在200px左右,而可用高度應該在600px左右。

感謝

回答

0

大概帆布因爲不包含任何內容或因爲未設置大小,默認爲300像素不佔用所有的空間。看到這一點:GWT Canvas - Save image and open it

UPDATE:

垂直和水平的面板只是HTML表格。他們將佔用與內容高度一樣多的空間。

相反,你可以使用:DockLayoutPanel

public void onModuleLoad() 
{ 
    DockLayoutPanel dockLayoutPanel = new DockLayoutPanel(Unit.PCT); 
    dockLayoutPanel.addNorth(new Label("My header"),5); 

    Canvas canvas = Canvas.createIfSupported(); 
    canvas.getElement().getStyle().setBackgroundColor("red"); 
    canvas.setWidth("100%"); 
    canvas.setHeight("100%"); 

    dockLayoutPanel.add(canvas); 

    RootLayoutPanel.get().add(dockLayoutPanel); 
} 

同時檢查:Developer's Guide - Layout Using Panels

+0

但它的高度不設置爲100%告訴瀏覽器將它延伸到其父的高度? – user291701

+0

查看我的更新回答 – Spiff

+0

另一個問題是,我的畫布默認顯示:內聯 - 所以我不斷收到這個奇怪的空白。更改爲顯示:塊刪除,並且事情工作更好。謝謝 – user291701