Vaadin 瓦迪顿和x27的图表;在splitlayout窗口中似乎不会自动调整大小

Vaadin 瓦迪顿和x27的图表;在splitlayout窗口中似乎不会自动调整大小,vaadin,vaadin-flow,vaadin14,Vaadin,Vaadin Flow,Vaadin14,在Vaadin14.4.2中,我有一个场景,其中我在splitLayout中添加了一个图表。但是,当我作为用户展开或收缩splitLayout时,相应的图表不会调整大小。其他组件(如栅格)会自动调整大小。是否有一些“神奇”的配置选项可以让图表像其他组件一样工作?(下面的屏幕截图显示图表没有调整大小,即使它下面的网格确实正确地自动调整大小。)(仅供参考,我称之为:spectraChart.setSizeFull();,因此图表应该会用尽所有可用空间。)(另一个提示:我可能会“陷阱”splitLay

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


是的,不幸的是这是真的。您可以通过对图表执行显式JavaScript调用来解决此问题,以便在拆分器位置发生更改时回流。下面的代码段将查找所有图表并将其重新加载:

innerLayout.addSplitterDragendListener(event -> {
getUI().ifPresent(
    ui -> ui.getPage()
       .executeJavaScript(
           "Array.from(window.document.getElementsByTagName('vaadin-chart')).forEach( el => el.__reflow());"
       ));                      
});