我有以下代码,成功地将我的Vaadin网格中的单元格内容集中在一起。
this.grid.setRowHeight(65);
this.grid.setStyleGenerator(item -> "v-align-center");
它看起来像这样。
我怎样才能垂直居中?当我尝试添加样式名称v-align-middle时,它什么也没做。
答案 0 :(得分:2)
如果你在行上设置一个特定的高度,那么用CSS实现它是非常直接的。
我不是使用StyleGenerator,而是将CSS类应用于网格本身。
<强>爪哇:强>
addStyleName("my-custom-grid");
<强> CSS:强>
.my-custom-grid .v-grid-body .v-grid-row .v-grid-cell {
height: 65px;
line-height: 65px;
}
答案 1 :(得分:1)
我使用CSS样式和默认TextRenderer
,但没有让它工作。当您切换到HtmlRenderer
时,您会有更多样式选项以及其他div
HTML元素。有关样式提示,请参阅this question。例如,当您可以使用flex布局时,这应该可以使用:
<div style="display:flex; height:100%; width:100%">
<div style="margin: auto;">11 m³</div>
</div>
另一种解决方法是使用ComponentRenderer
列,HorizontalLayout
设置为100%高度,其子组件与中间中心对齐。