Vaadin Grid Column setMaximumWidth игнорируется

У меня работает следующий код, где myGridExample - объект сетки Vaadin 8.

           this.myGridExample
                    .addColumn(MapQueryService.RowResult::getFacilityType)
                    .setMinimumWidth(130)
                    .setWidth(160)
                    .setMaximumWidth(170)
                    .setCaption("Facility Type");

SetMaximumWidth (170), похоже, ничего не делает. однако .setMinimumWidth (130) работает должным образом. Это ошибка?

введите описание изображения здесь


person benstpierre    schedule 06.12.2017    source источник
comment
Похоже на баг :)   -  person Steffen Harbich    schedule 07.12.2017


Ответы (1)


Из Vaadin8-docs:

setMaximumWidth

Устанавливает максимальную ширину для этого столбца. Это определяет максимально допустимую ширину столбца в пикселях, когда он настроен на расширение.

...

См. Также: setExpandRatio (int)

Если речь идет о setMinimumWidth - тоже работает только с расширением. Я произвел некоторые измерения в вашем gif, и похоже, что ваша минимальная ширина изменения размера составляет ~ 110 пикселей (при условии, что этот столбец в начальной позиции gif имеет ширину 160 пикселей). Так что, вероятно, он сам подстраивается к самому длинному значению столбца.

Обходной путь для вас:

grid.addColumnResizeListener(event -> {
   Grid.Column c = event.getColumn();
   if(c.getWidth() > c.getMaximumWidth())
      c.setWidth(c.getMaximumWidth());
   if(c.getWidth() < c.getMinimumWidth())
      c.setWidth(c.getMinimumWidth());
});
person Dawid Fieluba    schedule 07.12.2017