如何在 Vaadin 14 中将 HeaderRow 居中?
我有一个Headerrow
分组名称
和状态
列。 Headerrow
被命名为用户,目前位于网格的左侧。这就是现在的样子:
| User |
| Name | |Status|
我希望用户标头像这样:
| User |
| Name | |Status|
我当前的代码。请记住,现状标签和Resourscelink方法与问题无关。
public Grid<E> loadGrid(Class<? extends Resource> res) {
try {
Grid<E> grid = new Grid<>();
Column<E> nameColumn = grid.addComponentColumn(E -> resourceLink(E)).setHeader("Name").setWidth("50%")
.setFlexGrow(0).setTextAlign(ColumnTextAlign.CENTER);
Column<E> statusColumn = grid.addComponentColumn(E -> statusLabel(E)).setHeader("Status").setWidth("50%")
.setFlexGrow(0).setTextAlign(ColumnTextAlign.CENTER);
grid.addClassName("availaboard-grid");
grid.setAllRowsVisible(true);
grid.setItems((Collection<E>) (db.loadResources(type)));
grid.addSelectionListener(selection -> {
grid.getSelectionModel().getFirstSelectedItem().ifPresent(item -> {
System.out.println(item.getName());
});
});
HeaderRow headerRow = grid.prependHeaderRow();
headerRow.join(nameColumn, statusColumn).setText(res.getSimpleName());
return grid;
} catch (IllegalArgumentException | SecurityException e) {
}
return null;
}
谢谢!
I've got a HeaderRow
grouping a Name
and Status
column. The HeaderRow
is named User and is currently positioned to the very left of a Grid. This is what it looks like now:
| User |
| Name | |Status|
I would like the User header to be centered, like so:
| User |
| Name | |Status|
My current code. Keep in mind that the statusLabel and resourceLink methods are irrelevant to the problem.
public Grid<E> loadGrid(Class<? extends Resource> res) {
try {
Grid<E> grid = new Grid<>();
Column<E> nameColumn = grid.addComponentColumn(E -> resourceLink(E)).setHeader("Name").setWidth("50%")
.setFlexGrow(0).setTextAlign(ColumnTextAlign.CENTER);
Column<E> statusColumn = grid.addComponentColumn(E -> statusLabel(E)).setHeader("Status").setWidth("50%")
.setFlexGrow(0).setTextAlign(ColumnTextAlign.CENTER);
grid.addClassName("availaboard-grid");
grid.setAllRowsVisible(true);
grid.setItems((Collection<E>) (db.loadResources(type)));
grid.addSelectionListener(selection -> {
grid.getSelectionModel().getFirstSelectedItem().ifPresent(item -> {
System.out.println(item.getName());
});
});
HeaderRow headerRow = grid.prependHeaderRow();
headerRow.join(nameColumn, statusColumn).setText(res.getSimpleName());
return grid;
} catch (IllegalArgumentException | SecurityException e) {
}
return null;
}
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
setComponent
并将组件添加到连接的列标题中,而不是使用setText
,然后您可以轻松地设置该组件的样式。像这样的事情:Instead of using
setText
you could usesetComponent
and add a component to the joined columns header and then, you can easily style that component. Something like this: