如何解决Vaadin 8 Grid配置后单元格文本无法换行的问题?
解决方案
你需要修改三处错误配置:
- 修正样式生成器的返回值
你当前返回的样式名带了CSS选择器前缀.,实际StyleGenerator只需要返回纯样式类名即可,不需要前缀,同时你写的泛型属于多余错误声明,可以直接去掉:
public class MyGridStyleGenerator implements StyleGenerator { public String apply(Object item) { return "m-grid-cell-wrapper"; } }
- 调整CSS规则适配Reindeer主题
你调用的Grid.setStyleGenerator()是给整行添加样式类,需要选中行下的所有单元格,同时加!important覆盖Reindeer主题默认的单元格不换行规则:
.m-grid-cell-wrapper .v-grid-cell { word-wrap: break-word; white-space: normal !important; }
- 按需调整行高配置
你当前设置了固定行高table.setBodyRowHeight(35),如果内容行数超过2行会被截断,若需要自动适配内容高度,直接删除这行配置即可,Vaadin会自动计算行高。
如果不需要给所有列开启换行,只想给指定列设置,也可以直接给单列配置样式生成器,无需修改全局行样式:
// 给指定列设置单元格换行样式 grid.getColumn("你的列ID").setStyleGenerator(item -> "wrap-cell");
对应CSS:
.wrap-cell { word-wrap: break-word; white-space: normal !important; }
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

