3

拡張し、ルートとしてResizeCompositeaを持つコンポジットがあります。DockLayoutPanel私はそれを直接差し込むことができRootLayoutPanel、それが機能するDockLayoutPanel ProvidesResize.

ただし、GWT 2.2 で MVP 機能を使用したいのですが、RootLayoutPanel渡すことができませんActivityManager#setDiplay(AcceptsOneWidget)(マルチウィジェット コンテナーであるため)。

一見すると、 と と の両方をScrollPanel実装するという二重の要件を満たしているように見えます。 AcceptsOneWidgetProvidesResizeRequiresResize

しかし、ウィジェットを に配置するScrollPanelと、「サイズがゼロ」になり、表示するには手動でサイズを変更する必要があり、どのサイズを指定すればよいかわかりません。必ずしもスクロールしないパネルの方がいいです。

4

2 に答える 2

3

GWT 2.3 にはSimpleLayoutPanelがあり、次のように説明されています。

A simple panel that {@link ProvidesResize} to its one child.

于 2011-03-01T22:55:04.017 に答える
2

自分で実装することで任意のウィジェットに追加できProvidesResizeます。これは比較的簡単です。受け取ったすべてのサイズ変更通知をすべてのサブ子に渡すだけですRequiresResize

あるいは、パネルが利用可能なすべてのスペースを占有するようにしたい場合は、幅と高さをScrollPaneltoに設定してみてください"100%"

最後に、次の LayoutPanel の実装を示しAcceptsOneWidgetます。

public class PanelForView extends LayoutPanel implements AcceptsOneWidget
{
    IsWidget myWidget = null;

    @Override
    public void setWidget(IsWidget w)
    {
        if (myWidget != w)
        {
            if (myWidget != null)
            {
                remove(myWidget);
            }

            if (w != null)
            {
                add(w);
            }

            myWidget = w;
        }
    }

}

私は商用アプリでこれを何ヶ月も問題なく使用しており、ビューを簡単に交換できます。このコードを自由に使用してください。

于 2011-02-28T14:38:33.677 に答える