在拆分窗口中,Vaadin14中的图表似乎不会自动调整大小

问题描述

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

enter image description here

解决方法

是的,不幸的是,这是事实。您可以通过更改分配器位置时对图表进行显式JavaScript调用以重排来解决此问题。下面的代码段查找所有图表并对其进行重排:

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...