You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Vaadin 8 Grid配置后单元格文本无法换行的问题?

解决方案

你需要修改三处错误配置:

  1. 修正样式生成器的返回值
    你当前返回的样式名带了CSS选择器前缀.,实际StyleGenerator只需要返回纯样式类名即可,不需要前缀,同时你写的泛型属于多余错误声明,可以直接去掉:
public class MyGridStyleGenerator implements StyleGenerator {        
    public String apply(Object item) {          
        return "m-grid-cell-wrapper";
    }
}
  1. 调整CSS规则适配Reindeer主题
    你调用的Grid.setStyleGenerator()是给整行添加样式类,需要选中行下的所有单元格,同时加!important覆盖Reindeer主题默认的单元格不换行规则:
.m-grid-cell-wrapper .v-grid-cell {
   word-wrap: break-word;
   white-space: normal !important;
}
  1. 按需调整行高配置
    你当前设置了固定行高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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:45:03