Java 如何增加Vaadin 11.0.0网格中的行高度?
我想在Vaadin 11中的网格中实现单词包装。据我所知,你需要为此做两件事:Java 如何增加Vaadin 11.0.0网格中的行高度?,java,css,vaadin,vaadin-grid,Java,Css,Vaadin,Vaadin Grid,我想在Vaadin 11中的网格中实现单词包装。据我所知,你需要为此做两件事: 设置相应单元格的样式 增加行高 我使用以下代码完成了第一步: productsGrid.addColumn(TemplateRenderer.of( “[[item.name]]”) .withProperty(“名称”,产品::getName)) .setHeader(“名称”) 现在我需要增加行的高度 也许可以使用productsGrid.getElement().getStyle().set(…)来实现,但我不
productsGrid.getElement().getStyle().set(…)
来实现,但我不确定如何使用它
如何增加Vaadin 11网格中的行高度(即,使行更高以便在单元格中显示长文本)
更新1:
我使用以下代码创建网格:
private Grid<Product> createProductsGrid() {
final Grid<Product> productsGrid = new Grid<Product>();
productsGrid.setItems(Arrays.asList(AltFondUtilities.INSTANCE));
productsGrid.addColumn(TemplateRenderer.<Product>of(
"<div style='word-wrap: break-word;'>[[item.name]]</div>")
.withProperty("name", Product::getName))
.setHeader("Название");
productsGrid.addColumn(Product::getInterestRatePercentPerAnnum)
.setHeader("Ставка");
productsGrid.addColumn(Product::getProvider).setHeader("Организация");
productsGrid.setHeightByRows(true);
return productsGrid;
}
private Grid createProductsGrid(){
最终网格产品网格=新网格();
productsGrid.setItems(Arrays.asList(AltFondUtilities.INSTANCE));
productsGrid.addColumn(TemplateRenderer.of(
“[[item.name]]”)
.withProperty(“名称”,产品::getName))
.setHeader(“аззааааа”);
productsGrid.addColumn(产品::getInterestRatePercentPerAnnum)
.setHeader(“Сааааааа”);
productsGrid.addColumn(Product::getProvider).setHeader(“зззззз”);
productsGrid.setHeightByRows(真);
返回产品网格;
}
结果:即使name
列的样式正确,换行符也不起作用
从Vaadin 11的列表中可以看出,通过使用setHeightByRows
Grid<Person> grid = new Grid<>();
// When using heightByRows, all items are fetched and
// Grid uses all the space needed to render everything.
grid.setHeightByRows(true);
Grid Grid=new Grid();
//使用heightByRows时,将获取并删除所有项目
//网格使用渲染所有内容所需的所有空间。
grid.setHeightByRows(真);
行高的设置取决于所使用的主题。如果UI使用LUMO主题,那么可以使用下面的hack更改表的行高
Grid<Object> grid = new Grid<>();
grid.getStyle().set("--lumo-line-height-xs", "0");
grid.getStyle().set("--lumo-line-height-s", "0");
grid.getStyle().set("--lumo-size-xs", "0");
grid.getStyle().set("--lumo-size-s", "0");
grid.getStyle().set("--lumo-space-xs", "0");
grid.getStyle().set("--lumo-space-s", "0");
grid.getStyle().set("margin-top", "20px");
grid.getStyle().set("line-height", "20px");
Grid Grid=new Grid();
grid.getStyle().set(“--lumo行高xs”,“0”);
grid.getStyle().set(“--lumo-line-height-s”,“0”);
grid.getStyle().set(“--lumo size xs”,“0”);
grid.getStyle().set(“--lumo-size-s”,“0”);
grid.getStyle().set(“--lumo space xs”,“0”);
grid.getStyle().set(“--lumo-space-s”,“0”);
grid.getStyle()set(“边距顶部”、“20px”);
grid.getStyle().set(“行高”,“20px”);
谢谢,但它不起作用。我在问题的更新1中发布了创建网格的代码,以及我得到的屏幕截图。setHeightByRows与网格的大小有关,而不是一行。这个问题是关于单行的大小要使单元格换行,请为其添加主题:grid.element.themeList.addAll('wrap-cell-content')