Vaadin 瓦丁8:如何在网格中显示全尺寸图片?

Vaadin 瓦丁8:如何在网格中显示全尺寸图片?,vaadin,vaadin8,vaadin-grid,Vaadin,Vaadin8,Vaadin Grid,我试图在Vaadin 8网格中显示人员列表,包括他们的照片(字节[]中的JPEG)。 但是,在“组件”列中(请参见下面的代码),只有图片的顶部可见 personsGrid.addComponentColumn(v -> { if (v.getPhoto() != null) { Image personsPhoto = new Image(); displayImage(personsPhoto, v.getPhoto());

我试图在Vaadin 8网格中显示人员列表,包括他们的照片(字节[]中的JPEG)。 但是,在“组件”列中(请参见下面的代码),只有图片的顶部可见

personsGrid.addComponentColumn(v -> {
    if (v.getPhoto() != null) {
            Image personsPhoto = new Image();
            displayImage(personsPhoto, v.getPhoto());
            return personsPhoto;
    } 
    return new Image("", new ThemeResource("img/no-picture.jpg"));
});
有没有办法在网格中显示全尺寸图片?
通常如何使网格行根据内容高度调整其高度?

如问题下的注释所述,这无法动态实现,但可以使用CSS显式设置网格行的高度

沿着这条路线的一些东西会让你朝着正确的方向转向:

Java:

final Grid<SomeBean> grid = new Grid<>();
grid.addStyleName("custom-grid-style");
.custom-grid-style .v-grid-body .v-grid-row .v-grid-cell {
    min-height: 50px;
    line-height: 50px;
}
如果不确定在哪里更改CSS,则需要在正在编辑的类或UI上添加
@StyleSheet
注释。然后.css文件必须位于资源文件夹中的相同包位置

例如:

类位于包中:
com.example.components


就我所知,您的CSS文件将位于:
src/main/resources/com/example/components

。对于网格行上的动态高度,没有这样的功能。通过覆盖底层CSS,可以显式设置所有行的高度。但是你不能让它们自动调整。谢谢@Jay,看起来很不错。你能告诉我哪些CSS样式对网格行高度有影响吗?官方Vaadin文档对此进行了解释: