2010-11-30 11 views
0

私はSplitLayoutPanelを持っています。 Northセルでは、ScrollPanel があります。 このScrollPanelの高さを北のセルと同じにしたいので、ツリーが展開されるとき スクロールが表示されます。北セルのサイズを変更すると、このScrollPanel のサイズが変更される必要があります。 私はRequireResizesで試してみたが、親のサイズに 情報を送信することはありません...理想的なアプローチは、ProvidesSizeウィジェットは、私は非常に混乱しているSplitLayoutPanelの子の高さ

RequiresSizeウィジェットの子供たちのために利用できるサイズでさらにonResizeメソッドを呼び出すことでなければなりません。セル の子がサイズ変更されるようにSplitLayoutPanelを設定するにはどうすればよいですか?

おかげ

答えて

0

RequiresResizeをコンポジット拡張し、実装するクラスを作成します。そうですね:

次に、SplitLayoutPanelの北セルにMyScrollPanelを追加します。

編集 ただし、 ScrollPanelには既定の動作が既にあります。 SplitLayoutPanelセルに追加されたScrollPanelは、サイズ変更時でもセルのサイズを自動的に埋め込みます。また、ScrollPanelの子ウィジェットが使用可能なスペースより大きい場合、スクロールバーが表示されます。

しかし、あなたは RootLayoutPanel.get().add(splitLayoutPanel);

+0

'Composite' +' RequiresResize' = 'ResizeComposite'を行うことによってRootLayoutPanelにSplitLayoutPanelを追加していることを確認してください。また、 'MyScrollPanel'と' SplitLayouPanel'の間のパネルはすべてレイアウトパネルでなければなりません。そうしないと、サイズ変更は 'MyScrollPanel'パネルで呼び出されません。 –

+0

ドキュメントによると、ResizeCompositeは、自動的にRequiresResizeを実装する必要があるラップウィジェットにonResizeを委譲します。これにより、ScrollPanelでは機能しません。もうひとつの注意点として、SplitLayoutPanelとMyScrollPanelの間にあるすべてのウィジェットはレイアウトパネルではなく、ProvidesResizeを実装する必要があります。そうしないと、MyScrollPanel.onResize()が呼び出されません。 – dagge

+0

あなたの答えをありがとうが、それは私がやったことですが、私はonResizeメソッドを置くべきか分かりません。私のScrollPanelの高さを設定する方法は、北のセルの高さですか?あなたが別の親で子ウィジェットを再利用することができないので、これは子ウィジェットの親をチェックするのは本当に難しいです... –

関連する問題