忽略了Vaadin网格列setMaximumWidth

时间:2017-12-06 22:39:39

标签: vaadin vaadin8 vaadin-grid

我运行以下代码,其中myGridExample是Vaadin 8网格对象。

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

setMaximumWidth(170)似乎没有做任何事情。但.setMinimumWidth(130)按预期工作。这是一个错误吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

来自Vaadin8-docs

  

setMaximumWidth

     

设置此列的最大宽度。   这定义了最大值   当列设置为展开时允许列的像素宽度

     

...

     

参见:   setExpandRatio(int)

如果它是关于setMinimumWidth - 它也只适用于扩展。我在你的gif中做了一些测量,看起来你的最小调整宽度是 ~110px (假设gif开始位置的列宽度为160px)。所以它可能会自行调整到最长的列值。

为您解决方法:

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