В таблице Vaadin постоянно отображаются полосы прокрутки

У меня есть компонент 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).


person Filip Majernik    schedule 16.02.2012    source источник
comment
какой-нибудь код, снимок экрана или живая демонстрация могут помочь.   -  person Yazan Jaber    schedule 16.02.2012
comment
Меня также разочаровывает то, что иногда для некоторых элементов управления в Vaadin появляются скроллеры. Попытайтесь найти проблемные <div> с помощью Firebug и поделитесь своими выводами.   -  person dma_k    schedule 17.02.2012
comment
Что ж, вот в чем проблема. Все элементы макета имеют нужную ширину. Даже элемент таблицы (я имею в виду оболочку ‹div›) имеет желаемую ширину. Но элемент ‹table› внутри иногда имеет ширину 731px. Вот почему появляется скроллинг.   -  person Filip Majernik    schedule 17.02.2012
comment
у вас есть собственная тема в вашем приложении. Часто, когда у вас появляются дополнительные полосы прокрутки, вы настраиваете что-то таким образом, который не поддерживается. Попробуйте добавить в конец URL-адреса вашего приложения? Theme = reindeer и посмотрите, по-прежнему ли у вас появляются полосы прокрутки.   -  person Jens Jansson    schedule 18.02.2012
comment
Я пробовал это, и в таблице не было полос прокрутки. Однако, как я уже писал, в моей теме иногда есть полосы прокрутки, а иногда нет. Очень странно.   -  person Filip Majernik    schedule 21.02.2012
comment
Затем вам придется удалять части вашей темы, пока не найдете строку, которая вызывает такое поведение. Обычно это поля, отступы или границы.   -  person Jens Jansson    schedule 22.02.2012


Ответы (3)


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

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

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

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

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

@import "../reindeer/styles.css";
.v-table-mymodel .v-scrollable {
    overflow: hidden;
}
person rafalmag    schedule 26.03.2013

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

table.setPageLength(0);

он удалит всю полосу прокрутки в таблице vaadin.

person duccom    schedule 09.09.2013
comment
Это удаляет только вертикальный - person bernard paulus; 07.02.2014

пытаться

grid.recalculateColumnWidths()
person dscfgos    schedule 09.05.2016
comment
Добавьте объяснение с ответом о том, как этот ответ помогает OP в устранении текущей проблемы - person ρяσѕρєя K; 09.05.2016
comment
Это помогло мне с отображением горизонтальной полосы прокрутки в моей таблице, созданной с использованием компонента Grid, при динамическом изменении данных. Спасибо! - person Micer; 02.06.2016
comment
когда появляется вертикальная прокрутка, все столбцы в сетке сохраняют свой исходный размер, затем появляется горизонтальная прокрутка, чтобы показать столбцы, скрытые вертикальной прокруткой. - person dscfgos; 03.06.2016