1

smartGWT(3.1)(GWT:2.5)を使用してアプリを作成します。

さまざまなビュー(ListGridsのスクロールバーの位置など)への変更を保持するために、すべてのビューをメインキャンバスに追加し、それらの可視性を変更するだけです(show()/ hidden())

  (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、およびデータポイントからのいくつかのドットは表示されたままになります。これは、 Firefox18.0.2およびIE9発生します。Chrome(24.0.1312.57 m)では機能します。

TabSetも試してみます。タブを切り替えると(「古い」タブを非表示にする必要があります)、グラフの同じ要素が表示されたままになります。

可視性の問題に加えて、チャートからまだアクティブなリスナーが別の問題です。

概要: 親ウィジェットが非表示になると、highchartsチャートが適切に非表示になりません(FirefoxおよびIEの場合)。

4

2 に答える 2

1

表示の問題について、またコード例が提供されていないため、GWT Highchartsフォーラムで提供されているラッパーを使用しました。hide/show 呼び出しを正しく使用することで (たとえば、タブが選択または選択解除されたときに、それぞれ show または hide を呼び出します)、すべてのブラウザーで説明されている問題を克服することができました。

于 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 に答える