0

在 Vaadin 14.4.2 中,我有一个场景,我在 splitLayout 中添加了一个图表。但是,当我作为用户扩展或缩小 splitLayout 时,相应的图表不会调整大小。其他组件(例如网格)会自动调整大小。是否有一些“神奇”的配置选项可以让图表表现得像其他组件一样?(下面的屏幕截图显示图表没有调整大小,即使它下面的网格确实正确地自动调整了大小。)(另外,我称之为:spectraChart.setSizeFull();所以图表应该用完所有可用空间。)(另一个仅供参考:我可能会“捕获” splitLayout 调整大小,即使然后重做绘图,但在我看来,理想情况下这在“框架”中是不必要的解决方案,例如 Vaadin,因为图表是一个组件,其行为应该与其他组件(例如网格)一样。)

在此处输入图像描述

4

1 回答 1

1

是的,不幸的是,这是真的。您可以通过对图表执行显式 JavaScript 调用来解决此问题,以便在更改分隔符位置时重排。下面的代码片段找到所有图表并重新排列它们:

innerLayout.addSplitterDragendListener(event -> {
getUI().ifPresent(
    ui -> ui.getPage()
       .executeJavaScript(
           "Array.from(window.document.getElementsByTagName('vaadin-chart')).forEach( el => el.__reflow());"
       ));                      
});
于 2020-11-03T06:17:02.083 回答