1

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

4

2 回答 2

1

对于显示问题,由于您没有提供任何代码示例,我使用了 GWT Highcharts论坛上提供的包装器。With correct usage of hide/show calls (eg when tab is selected or deselected, call show or hide, respectively) I have managed to overcome the issue described in all browsers.

于 2013-02-26T10:47:18.113 回答
1

我遇到过同样的问题。我通过将 tabSelectedHandler 添加到 tabSet 并在其中根据所选选项卡使用 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);
        }
    }
});
于 2013-06-20T07:16:50.357 回答