使用setExpandRatio时,Vaadin DCharts渲染过早

时间:2015-07-30 14:32:40

标签: javascript java vaadin jqplot

我目前在使用Vaadin v7.5.2中的dChart widget插件(jqPlot的包装器)时遇到问题。以下是代码片段让我头疼的问题:

ComboBox comboBox = new ComboBox();
DCharts chart = new DCharts();

VerticalLayout content = new VerticalLayout();

content.addComponent(comboBox);
content.addComponent(chart);

content.setExpandRatio(chart, 1.0f);

setContent(content);

chart.setDataSeries(dataSeries).setOptions(options).show();

问题在于,当我使用setExpandRatio时,图表在加载页面时会从容器中溢出。这是一张图片来说明:

Chart with bottom overflowing from screen

当我使用Web开发人员工具隐藏ComboBox并删除边距时,图表看起来没问题。因此,似乎在设置扩展比率之前绘制了绘图,好像它不知道ComboBox在那里。

然而,在从ComboBox中选择另一个项目(加载另一个DataSeries)之后,图表将在预期的边界内绘制并且不会溢出。此外,当没有设置扩展比率或没有添加ComboBox时,一切都按预期工作。

有没有人遇到类似问题,或者知道我可以做些什么来解决这个问题?任何帮助当然非常感谢!

1 个答案:

答案 0 :(得分:0)

我知道这不是一个理想的解决方案,但我设法通过使用AbsoluteLayout并使用top: 40px绘制绘图来解决我的问题。之后,我将ComboBox添加到布局中。这样,情节总是被绘制在正确的位置。

把它留在这里作为临时解决方案,所以如果有人有更好的解决方案,请不要犹豫!