我在某些布局中有一个 Table 组件,但我不希望它显示任何滚动条。
表格将始终只显示 25 行,宽度应始终为 720 像素。但是,该表一直显示垂直和水平滚动条,我无法弄清楚如何。有趣的是(虽然我现在很想哭),有时滚动条会消失。当我不断刷新页面时,有时它们会消失,一切正常。
以下是我经过几个小时的调试后收集到的一些信息:
- 有时,图标/图像/等。未加载并显示为现金,有时它们是。你猜怎么着,这也是打开和关闭滚动条,尽管图像仍然显示。
- 每列的宽度有时会多几个像素 - 这就是水平滚动条出现的原因,我认为这也是垂直滚动条出现的原因(因为水平滚动条占用了表格高度的一些像素)<
- 我试过在填表后调用requestRepaint,甚至是父组件上的requestRepaintAll,还有它的parent,还有它的parent等等...
- 我试过以百分比设置每列的宽度。 100000。)我想我已经尝试了 4 到 100000 之间的所有其他东西。
我一定是遗漏了什么。很多人都有这个问题,我直接在 vaadin 页面上找到了很多线程,但没有 THIS-DEFINITELY-WORKS 解决方案。
编辑代码:
Table t = new Table();
t.setWidth("720px");
t.setImmediate(true);
t.setSelectable(true);
// Headers
t.addContainerProperty("fullName", String.class, null, "Meno", null, null);
t.setColumnExpandRatio("fullName", 22);
t.addContainerProperty("dateOfBirth", Date.class, null, "Narodenie", null, null);
t.setColumnExpandRatio("dateOfBirth", 18);
t.addContainerProperty("lastYearCosts", BigDecimal.class, null, "Náklady", null, null);
t.setColumnExpandRatio("lastYearCosts", 10);
t.addContainerProperty("lastYearBalance", BigDecimal.class, null, "Saldo", null, null);
t.setColumnExpandRatio("lastYearBalance", 10);
t.addContainerProperty("activeClient", ComparableBooleanEmbeddedIcon.class, null, "", new ThemeResource("icons/icon-app-header-medipartner.png"), Table.ALIGN_CENTER);
t.setColumnExpandRatio("lastYearBalance", 8);
t.addContainerProperty("dmsCount", String.class, null, "", new ThemeResource("icons/icon-app-header-heart.png"), null);
t.setColumnExpandRatio("dmsCount", 8);
t.addContainerProperty("authCount", String.class, null, "", new ThemeResource("icons/icon-app-header-warnings.png"), null);
t.setColumnExpandRatio("authCount", 8);
t.addContainerProperty("book", CssLayout.class, null, "Objednať", null, Table.ALIGN_CENTER);
t.setColumnExpandRatio("book", 16);
然后,我只需使用 addItem(Object[] item) 填充行。
最佳答案
我有同样的问题 - 烦人的滚动条。我使用我自己的主题和覆盖 css 样式修复了这个问题。
要在 Application
的实现中这样做,您必须调用 setTheme("mytheme")
设置主题。
然后当你定义表格时,你可以使用你自己的风格(将有问题的表格与其他表格区分开来):
Table table = new Table()
table.addStyleName("mystyle")
然后你必须在 VAADIN/themes/mytheme/styles.css
中定义你自己的 css 样式:
@import "../reindeer/styles.css";
.v-table-mymodel .v-scrollable {
overflow: hidden;
}
关于java - Vaadin 表一直显示滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310076/