在Vaadin,一個HorizontalLayout給出各組分完全相同它需要只要有足夠的它,而不是多個空間。Vaadin表寬度
在具有BeanItemContainer然而創建一個表,所有列具有相同的寬度。由於表格內容是動態加載的,寬度每次都不一樣,不同的PC具有不同的字體大小,我們不希望以像素爲單位指定固定的寬度。
我們怎麼知道行表現得像一個HTML表格或在它給每個行權寬度,而不是更多,不是更少HorizontalLayout?
在Vaadin,一個HorizontalLayout給出各組分完全相同它需要只要有足夠的它,而不是多個空間。Vaadin表寬度
在具有BeanItemContainer然而創建一個表,所有列具有相同的寬度。由於表格內容是動態加載的,寬度每次都不一樣,不同的PC具有不同的字體大小,我們不希望以像素爲單位指定固定的寬度。
我們怎麼知道行表現得像一個HTML表格或在它給每個行權寬度,而不是更多,不是更少HorizontalLayout?
您可能僅與CSS規則嘗試:
.v-table td:last-child {
margin-right:auto;
}
鉻> = 4,火狐> = 3.5,歌劇> = 9.6時,Safari> = 3.2,IE> = 9
這聽起來就是你在尋找擴大比例。它的工作方式與HorizontalLayout的展開比例類似。
看一看https://vaadin.com/api/com/vaadin/ui/Table.html#setColumnExpandRatio%28java.lang.Object,%20float%29以獲取更多信息。
Table oTable = new Table();
oTable.addContainerProperty("First name", String.class, null);
oTable.addContainerProperty("Last name", String.class, null);
oTable.addContainerProperty(YEAR_PROPERTY, Integer.class, null);
oTable.addItem(new Object[] { "Nicolaus","Copernicus",new Integer(1473) }, new Integer(1));
oTable.addItem(new Object[] { "Tycho", "Brahe", new Integer(1546) }, new Integer(2));
oTable.addItem(new Object[] { "Giordano","Bruno", new Integer(1548) }, new Integer(3));
oTable.addItem(new Object[] { "And this is a very very long cell", "Newton", new Integer(1643) }, new Integer(4));
oTable.setSizeFull();
oTable.setColumnExpandRatio(YEAR_PROPERTY, 1.0f);
編輯:如果你設置了expandratio爲一個單元(例如最後一個)所有其他人只是採取必要的空間。這可能是您的要求的解決方法。
如果您註釋掉最後添加的項目,您會看到第一列僅佔用所需的空間。
的擴大比率不固定不幸的是,這個問題的擴展比率給了一個物體比它真正需要更多的空間,但是我希望它只有最小值(但不能小於)。 – 2012-03-30 09:58:41
我已在前一篇文章中添加了一個示例。 – nexus 2012-03-30 11:45:11
隨着Vaadin版本6.7.2,擴展比率1.0f只需佔用所有豐富的空間。其他列不會重新調整大小。我們想要的是,列擴大,所以他們的價值觀完全顯示。 – 2012-09-14 15:29:17
setColumnWidth(-1)應該激活自動縮放。雖然這通常是默認的(即使有BeanItemContainers,所以我很驚訝你沒有看到系統自動顯示該行爲。 一個相關的概念,可能值得你追求的是setSizeUndefined(),這是相當大的接口的方法。
不幸的是,我不再使用Vaadin,所以我無法驗證自己如果這個答案是正確的,如果你提供了一個截圖來證明它的工作,我會接受它。 – 2016-02-11 14:02:52
我會,但它是敏感數據。也許另一個渠道聯繫? – 2016-02-11 14:24:22
好吧,我只是相信你已經檢查過它:-) – 2016-02-11 15:00:46