Vaadin表不断显示滚动条

Fil*_*nik 7 java vaadin

我在一些布局中有一个Table组件,我不希望它显示任何滚动条.

该表将始终只显示25行,宽度应始终为720px.但是,该表一直显示垂直和水平滚动条,我无法弄清楚如何.有趣的是(虽然我现在哭得很厉害),有时滚动条会消失.当我不断刷新页面时,有时它们会消失,一切都很好.

以下是经过数小时调试后收集到的几个信息:

  1. 有时,图标/图像/等.未加载并以现金显示,有时它们是.并猜测是什么,这也是打开和关闭滚动条,虽然图像仍然显示.
  2. 每列的宽度有时会多几个像素 - 这就是水平滚动条显示的原因,我认为这也是垂直滚动条显示的原因(因为水平从表格的高度获取一些像素)
  3. 我在填充表之后尝试调用requestRepaint,甚至在父组件及其父组件及其父组件等上调用requestRepaintAll ...
  4. 我尝试以百分比设置每列的宽度.100000.)我想我已经尝试过4到100000之间的所有其他事情.

我肯定错过了什么.很多人都有这个问题,我已经在vaadin页面上直接找到了很多线程,但是没有这个绝对可行的解决方案.

编辑代码:

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);
Run Code Online (Sandbox Code Playgroud)

然后,我只是用addItem(Object [] item)填充行.

raf*_*mag 8

我有同样的问题 - 恼人的滚动条.我使用自己的主题和重写css样式修复了这个问题.

要在您的实现中执行此操作,Application您必须设置主题调用setTheme("mytheme").

然后,当您定义表时,您可以使用自己的样式(以区分有问题的表与其他表):

Table table = new Table()
table.addStyleName("mystyle")
Run Code Online (Sandbox Code Playgroud)

然后你必须在以下位置定义自己的css样式VADIN/themes/mytheme/styles.css:

@import "../reindeer/styles.css";
.v-table-mymodel .v-scrollable {
    overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)