我使用smartGWT构建应用程序( 3.1 )( GWT:2.5 )。
要保存对各种视图的更改(ListGrids中的滚动条位置等),我将所有视图添加到主画布,只需更改其可见性(show()/ hide())
(hide() all children then show() the one which was selected in the menu)
在我使用hichcharts( gwt.highcharts-1.5.0.jar / highcharts.js - > 2.3.5 )之前一切正常。 如果我将图表包装在smartGWT或GWT小部件中没有区别,当我隐藏视图时,图表的某些元素保持可见。
Ledgend-background,Ledgend-lines和数据点中的一些点保持可见。它发生在firefox 18.0.2 和IE 9 中。在Chrome中( 24.0.1312.57 m ),它可以正常运行。
我也尝试过TabSet。当我切换标签(应该隐藏'旧'标签)时,图表的相同元素保持可见。
除了可见性问题之外,图表中仍然活跃的监听器是另一个问题。
摘要: 当父窗口小部件隐藏时(在firefox& IE中),highcharts图表不会隐藏。
答案 0 :(得分:1)
对于显示问题,由于您没有提供任何代码示例,我使用了GWT Highcharts forum上提供的包装器。正确使用隐藏/显示调用(例如,当选择或取消选择选项卡时,分别调用show或hide)我已成功克服了所有浏览器中描述的问题。
答案 1 :(得分:1)
我有同样的问题。我通过向tabSet添加tabSelectedHandler解决了这个问题,在里面我使用StockChart.setVisible(boolean)显示或隐藏图表,具体取决于所选的选项卡。
tabSet.addTabSelectedHandler(new TabSelectedHandler()
{
@Override
public void onTabSelected(TabSelectedEvent event)
{
if (event.getTab().getTitle().equals("Charts"))
{
chart.setVisible(true);
}
else
{
chart.setVisible(false);
}
}
});