18

実際にサイズを設定しなくても、GWT のパネルでページを埋めたいと思います。これを行う方法はありますか?現在、私は以下を持っています:

public class Main  implements EntryPoint
{
    public void onModuleLoad()
    {
        HorizontalSplitPanel split = new HorizontalSplitPanel();
        //split.setSize("250px", "500px");
        split.setSplitPosition("30%");

        DecoratorPanel dp = new DecoratorPanel();
        dp.setWidget(split);

        RootPanel.get().add(dp);
    }

}

前のコード スニペットでは、何も表示されません。不足しているメソッド呼び出しはありますか?

ありがとう。


更新 17 9 月 2008 で 20:15

両側にいくつかのボタン (明示的にサイズを設定) を配置しましたが、それでも機能しません。FillLayout クラスや setFillLayout メソッド、setDockStyle(DockStyle.Fill) などがないことに本当に驚いています。多分それは不可能ですか?しかし、GWT と同じくらい人気があるので、それは可能だと思います。

更新 08 年 9 月 18 日 14:38

RootPanel の幅と高さを 100% に設定しようとしましたが、それでもうまくいきませんでした。提案をありがとう、それはおそらくうまくいくように見えました。他の提案はありますか??

4

8 に答える 8

19

Google は、よくある質問の 1 つで質問の主要部分に回答しています: http://code.google.com/webtoolkit/doc/1.6/FAQ_UI.html#How_do_I_create_an_app_that_fills_the_page_vertically_when_the_b

主なポイントは、高さを 100% に設定できないことです。次のようにする必要があります。

final VerticalPanel vp = new VerticalPanel();
vp.add(mainPanel);
vp.setWidth("100%");
vp.setHeight(Window.getClientHeight() + "px");
Window.addResizeHandler(new ResizeHandler() {

  public void onResize(ResizeEvent event) {
    int height = event.getHeight();
    vp.setHeight(height + "px");
  }
});
RootPanel.get().add(vp);
于 2009-06-06T02:23:35.237 に答える
13

ベンの答えはとても良いですが、時代遅れでもあります。GWT 1.6ではサイズ変更ハンドラーが必要でしたが、現在は2.4になっています。DockLayoutPanelを使用して、コンテンツをページ全体に垂直に表示することができます。このパネルを使用するサンプルメールアプリをご覧ください。

于 2012-05-23T15:44:59.970 に答える
0

問題は、DecoratorPanel の middleCenter セルがデフォルトでコンテンツにぴったりと表示され、SplitPanel では「100%」のスタイル サイズ設定が許可されないことです。必要なことを行うには、CSS でテーブルのスタイルを適切に設定します。

.gwt-DecoratorPanel .middleCenter { 高さ: 100%; 幅: 100%; }

于 2009-01-18T23:38:42.003 に答える
0

パネルは、表示可能な最小幅に自動的にサイズ変更されます。そのため、SplitPanel を含め、RootPanel に追加するすべてのパネルのサイズを 100% に変更する必要があります。RootPanel 自体のサイズを変更する必要はありません。だから試してください:

split.setWidth("100%");
split.setHeight("100%");
于 2008-09-18T21:13:13.970 に答える
0

ウィジェットを追加する前に、ルートパネルの幅や高さを 100% に設定してみてください。

于 2008-09-18T00:00:28.927 に答える
0

分割の左および/または右に何かを配置する必要があると思います (split.setLeftWidget(widget)、split.setRightWidget(widget) OR split.add(widget)、最初に左に追加し、次に追加します)右に)何かが表示されるようにします。

于 2008-09-17T19:59:27.837 に答える
0

DecoratorPanelのドキュメントには次のように書かれています。

DecoratorPanel の幅または高さを設定する場合、middleCenter セルが使用可能なすべてのスペースを占有するように、middleCenter セルの高さと幅を 100% に設定する必要があります。DecoratorPanel の幅と高さを設定しないと、内容がきつくラップされます。

于 2008-09-19T18:01:14.270 に答える