0

SplitLayoutPanel の子の最大サイズを設定する良い方法はありますか? 現在、その onResize メソッドをオーバーライドし、JSNI 関数を呼び出して、中央パネルの div の親 div、右側のパネルの div、および分割パネルの div の右または幅のスタイル プロパティを設定します (右/東のパネルの幅が 400 ピクセルを超える場合)。 .

スプリッターと右側のパネルのサイズがマウス カーソルに追従せず、マウス ポインターの現在の位置に基づいて、幅が約 4/5 から 2/5 の間で大きく変動していることに気付きました。

私はEclipseでデバッグし、Eclipseなしで実行しようとしましたが、同じです。私も super.onResize() を呼び出しています。

4

3 に答える 3

0

問題を正しく理解している場合は、SplitLayoutPanel が親要素の最大スペースを占有するようにします。これには、次のような幅のパーセンテージ プロパティを使用できます。

SplitLayoutPanel slp = new SplitLayoutPanel();
slp.setWidth( "100%" );

次のステップでは、SplitLayoutPanel に子要素を追加し、最大の領域を占有する必要があります。次に、各子の幅を 100% に設定します

Widget child = // Instantiate any type of widget
child.setWidth( "100%" );
slp.add // Use proper add method and add the child to SplitLayoutPanel

ドラッグが非常にびくびくするという意味がわかりませんでした。スプリッターのサイズが小さすぎてスプリッターが見つからないということですか。その場合は、次のようにコンストラクターに渡すことでスプリッターのサイズを増やすことができます

int splitter_size_in_pixels = 5;
SplitLayoutPanel slp = new SplitLayoutPanel( splitter_size_in_pixels );
于 2012-12-18T18:15:15.353 に答える
0

中間の ResizeLayoutPanels を追加することで、ぎくしゃくした動きを修正できます。

MyComposite.ui.xml :

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui" 
    xmlns:my="urn:import:my.custom.package.client">

<g:SplitLayoutPanel ui:field="splitLayoutPanel">
    <g:west size="250">
    <g:ResizeLayoutPanel ui:field="leftMenuOuterPanel">
            <my:MenuWidget ui:field="menuWidget" />
        </g:ResizeLayoutPanel>
    </g:west>
    <g:center>
        <g:ResizeLayoutPanel ui:field="centerOuterPanel">
            <my:AwesomeWidget ui:field="centerWidget" />
        </g:ResizeLayoutPanel>
    </g:center>
</g:SplitLayoutPanel>

</ui:UiBinder>

OlivierHの回答に感謝

于 2016-05-31T12:50:34.003 に答える
0

スプリッターと右側のパネルのサイズがマウス カーソルに追従せず、マウス ポインターの現在の位置に基づいて、幅が約 4/5 から 2/5 の間で大きく変動していることに気付きました。

スプリッターをドラッグすると、ぎくしゃくした動きも見られました。私の南ペインには、ラベルとテーブルを含む垂直パネルが含まれていました。修正は、 VerticalPanel の height="100%" を設定することでした。uibinder コードを追加しました。

HTH ジュリアン

    <g:SplitLayoutPanel styleName="gwt-SplitLayoutPanelTtc" ui:field="splitLayoutPanel">
    <g:north size="40">
        ...
    </g:north>
    <g:west size="200">
        ...
    </g:west>
    <g:south size="500">
        <g:VerticalPanel height="100%" width="100%">
            <g:Label ui:field="tableTitle" styleName="tableTitle"></g:Label>
            <g:Grid ui:field="table" styleName="gwt-Grid"></g:Grid>
        </g:VerticalPanel>

    </g:south>
    <g:center>
        ...
    </g:center>
</g:SplitLayoutPanel>
于 2013-07-10T18:07:35.850 に答える