Таблица Vaadin продолжает показывать полосы прокрутки - PullRequest
7 голосов
/ 16 февраля 2012

У меня есть компонент Table внутри некоторых макетов, и я не хочу, чтобы он отображал полосы прокрутки.

В таблице всегда будут отображаться только 25 строк, а ширина должна всегда составлять 720 пикселей.Тем не менее, таблица продолжает показывать вертикальные и горизонтальные полосы прокрутки, и я не могу понять, как.Самое смешное (хотя я довольно плачу сейчас), что иногда полосы прокрутки исчезают.Когда я продолжаю обновлять страницу, иногда они исчезают, и все в порядке.

Вот пара информации, которую я собрал после нескольких часов отладки:

  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);

Затем я просто заполняю строки с помощью addItem (Object [] item).

Ответы [ 3 ]

8 голосов
/ 27 марта 2013

У меня была та же проблема - раздражающие полосы прокрутки. Я исправил это, используя свою собственную тему и переопределив стиль CSS.

Чтобы сделать это в вашей реализации Application, вам нужно установить свою тему, вызывая setTheme("mytheme").

Затем, когда вы определяете таблицу, вы можете использовать свой собственный стиль (чтобы отличить эту проблемную таблицу от других):

Table table = new Table()
table.addStyleName("mystyle")

А затем вы должны определить свой собственный стиль CSS в VADIN/themes/mytheme/styles.css:

@import "../reindeer/styles.css";
.v-table-mymodel .v-scrollable {
    overflow: hidden;
}
3 голосов
/ 10 сентября 2013

вы должны использовать

table.setPageLength(0);

это удалит все скроллбары в таблице vaadin.

1 голос
/ 09 мая 2016

1001 * попробовать *

grid.recalculateColumnWidths()
...