如果隐藏了smartGWT布局ID,则不会完全隐藏Highcharts Chart

时间:2013-02-15 11:45:01

标签: highcharts hide smartgwt

我使用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图表不会隐藏。

2 个答案:

答案 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);
        }
    }
});