1

Layout Panel (DockLayoutPanel) 内で CaptionPanel を使用したい。

問題は、CaptionLayoutPanel(SimpleLayoutPanel など) の実装がないため、レイアウト パネル内でこのパネルを使用する場合、「サイズ変更チェーン」が CaptionPanel を介して壊れているため、すべての子がサイズ変更イベントを失うことです。

回避策はありますか?

4

2 に答える 2

2

およびインターフェイスの拡張CaptionPanelと実装ProvidesResizeRequiresResize

CustomCaptionPanel extends CaptionPanel implements RequiresResize,ProvidesResize {

    public void onResize() {
        if (getContentWidget() instanceof RequiresResize) { 
            ((RequiresResize) getContentWidget()).onResize(); 
    }
}
于 2012-09-26T14:18:08.880 に答える
2

最も簡単な解決策は、CaptionPanel を使用しないことです。

子がサイズ変更イベントに応答するようにする場合は、キャプション (ラベル) を保持するレイヤーを LayoutPanel に追加し、サイズ変更に応答する子ウィジェットを含む別のレイヤーを追加します。これらのウィジェットは好きなようにスタイル設定できます (たとえば、Label はタブやパネルのように見え、背景と角が丸くなっているなど)。

別の解決策は、Roddy of the Frozen Peas が提案したように CaptionPanel のスタイルを設定し、ウィンドウに ResizeHandler を追加することです。トリガーされると、子ウィジェットのサイズを次のように設定できます。

myChildWidget.setSize(myCaptionPanel.getOffsetWidth() + "px", myCaptionPanel.getOffsetHeight() + "px");
于 2012-09-25T19:19:30.147 に答える