我的 Vaadin 应用程序只包含 2 个部分
包含横幅和多个按钮的水平布局;
带网格的垂直布局。 它按预期(大部分)工作,但我的问题是,无论窗口大小如何,包含 2000 多行的网格只显示三行。这是它的截图: 我希望它占据整个页面,但我所做的一切都不会对网格大小产生任何影响。 这是我的课:
public class TableLayout extends VerticalLayout {
// 一些变量 公共表格布局(){ this.addClassName("书桌"); 这个.setSizeFull(); registrations = new ArrayList<>(); 创建图书表(); }
private void createBooksTable() {
this.booksTable = new Grid<>();
this.booksTable.setWidth("100%");
this.booksTable.setMinHeight("100%");
this.yearRenderer = new HitYearRenderer();
this.booksTable.addColumn(this.yearRenderer).setHeader("Год").setWidth("8%");
this.booksTable.addColumn(new NewTagRenderer()).setWidth("60px");
this.booksTable.addColumn(new AuthorListRenderer()).setHeader("Автор(ы)").setAutoWidth(true);
this.booksTable.addColumn(new TitleRenderer()).setHeader("Произведение").setWidth("50%");
this.booksTable.addColumn(new RatingRenderer()).setHeader("Оценки").setAutoWidth(true);
this.booksTable.addColumn(new ReaderRatingRenderer()).setAutoWidth(true);
this.booksTable.addColumn(new StatusRenderer()).setHeader("Статус").setAutoWidth(true);
this.booksTable.setItemDetailsRenderer(new BookDetailsRenderer());
this.booksTable.addThemeVariants(GridVariant.LUMO_COMPACT);
this.booksTable.addThemeVariants(GridVariant.LUMO_WRAP_CELL_CONTENT);
}
// some other code
}
这是我的 css 文件所说的:
.book-table {
width: 98%;
min-height: 100%;
background-color: whitesmoke
}
我确实尝试将 minHeight 设置为 100% 而不是全尺寸。一点作用都没有。有人能告诉我我还能做些什么来增加桌子的高度吗?
根据您共享的代码不可能知道,但看起来您在高度为 100% 的 VerticalLayout 中有一个高度为 100% 的网格。所以 Grid 是 100% 的父级,也就是 100% 的父级,这里是未知的。因此,您需要确保 TableLayout 的父级不限制 Grid 的总高度。在浏览器开发工具的帮助下,这应该很容易检查。
顺便说一句,您在 Java 代码(修改元素的
style
属性)和 CSS 中都设置了组件的高度。这不应该影响您案件的结果,但您通常应该限制自己在一个地方进行尺寸调整。