2013-07-31 116 views
1

**如何在smartgwt中設置動態寬度? 我已經試過這樣:自動寬度帆布smartgwt

mainWindowBody = new VLayout(); 
mainWindowBody.setAutoWidth(); 

,並沒有奏效:S 任何一個可以幫助**

+0

java!= javascript – orique

+0

你不知道什麼是GWT或smartGWT? –

+1

@MohdSabri對不起,我沒有用過它。我正在審閱第一篇文章,並看到了類似Java的代碼。 – orique

回答

0

使用Canvas.setWidth(String)適當字符串或Canvas.setWidth100()

mainWindowBody.setWidth("*"); 

OR

mainWindowBody.setWidth100(); 

OR

mainWindowBody.setWidth("100%"); 

一切都將在此方案同樣的效果。
這將導致mainWindowBody根據可用空間的大小展開和縮回。

有三個setWidth()(和自動調用setHeight)方法在畫布:
setWidth(int) - 設置特定寬度以像素爲單位 - setWidth(200)
setWidth(String) - setWidth("50%")
setWidth100() - - 一個方便的方法來設置寬度爲100與百分比,以使用%

檢查What does setWidth("*") do in CSS/SmartGWT?查看setWidth("*")setWidth100()之間的區別。

+0

這將採取父母的寬度和高度! 我希望它自動決定小部件的寬度和高度。 謝謝:) –

+0

@ Moh'dSabri基於什麼? – Sithsu

0

HTML5畫布喜歡以像素爲單位的大小,如果您設置了新大小,則會清除其內容。但它有一個context.scale()函數,可在調整大小時保留畫布的內容。

如果您嘗試在用戶重新調整瀏覽器窗口大小時重新調整畫布大小,則可以添加窗口重新大小處理程序:Window.addResizeHandler()。我只知道如何用GWT來做到這一點,而不是SmartGWT。當觸發窗口大小調整事件時,使用event.getHeight()和event.getWidth()以及一些數學運算來爲您的畫布計算新的像素大小。

+0

我使用html 4,我不想調整瀏覽器的窗口大小, 謝謝:) –

+0

您應該使用'setWidth(java.lang.String)'。你可以試試'setWidth(「auto」);' http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/Canvas.html#setWidth(java.lang.String) ,Canvas是一個HTML5功能。 – Churro

2

大約晚了一年我知道的派對,但如果這有助於別人,它是值得的。 SmartGWT在自動寬度方面有一點小小的缺陷 - 您必須將其與setOverflow(Overflow.VISIBLE)結合使用。將setAutoWidth和溢出放在同一個佈局/畫布上,並將其大小設置爲其自己的寬度。

+0

習慣上留下一些示例代碼以使您的答案更易於理解。 :)歡迎來到SO! –