2013-04-04 48 views
0

我需要一個GWT中的FlexTable,我可以在運行時添加項目。 FlexTable位於ScrollPanel內部,因此當水平內容超出顯示區域時,會出現滾動條。 問題是,當有2-3列時,它們的間隔很廣,但隨着列數的增加,單元格所需的最小面積爲100px。 我需要確保Cell始終只需要100px。我一直在追隨但沒有成功。GWT:靈活固定列大小

myflextable.getCellFormatter()。setWidth(0,col,「100px」);

回答

0

請使用getFlexCellFormatter()。setWidth()方法嘗試。 請再檢查一下,你是否給出了100%的可伸縮寬度。

0

問題可能是flextable初始設置太寬。它將默認填充滾動面板,然後結果列將拉伸到其最大寬度。 您應該在開始時顯式設置flextable的寬度,並且在運行時添加更多列時它會自動調整大小。

這裏是當你有最初一排和兩個100像素列的例子:

ft = new FlexTable(); 
ft.addStyleName("flextable"); 
ft.setWidth("200px"); 
for (int x = 0; x < 2; x++) { 
    ft.setText(x, 0, "cell"); 
    ft.getCellFormatter().addStyleName(x, 0, "testcell"); 
} 
scrollpanel.add(ft); 

和你的CSS應該這樣說:

.flextable { 
    table-layout: fixed; 
} 
.testcell { 
    width : 100px; 
} 

注意,flextable最初設置爲200像素寬度,因爲我們從兩列開始。 在CSS文件中,必須設置表格佈局屬性,否則在添加更多內容(直到單元格達到其內容定義的最小寬度)時,列將小於100像素。

此外,請記住將樣式名稱「testcell」添加到您在運行時添加的任何新單元格。