1

ContentPanelにBorderLayoutContainer内の利用可能なすべての高さを取得させることができません。

バージョン2.xでは、と同じくらい単純でしたが、setLayout(new FillLayout());GXT3.0.xでは無効になりました。

問題を明確にするために、ここGXT 3デモの例を取り上げました。これは、どのように表示されるかを示しています。ボーダーレイアウトデモ ただし、例とまったく同じコードをプロジェクトにコピーすると、次のようになります。 同じものが私のプロジェクトにコピーされました

レイアウトが壊れているようです。Chrome22.0.xとFirefox16.0.1でも同じようにレンダリングされます。私はGWT2.4とGXT3.0.1を使用しています。私のHTMLページには

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<link rel="stylesheet" type="text/css" href="modeluname/reset.css" />

4

1 に答える 1

3

Explorerはサイズを割り当てていますが、これは例の移植性を低下させるため、おそらく間違いです。サイズは親(デモとソースの両方を含むタブパネル)から割り当てられ、親(メインタブパネル)からサイズが取得されます。これに対処するには、必ずサイズを設定してください。

通常、ルートウィジェットにサイズを設定する必要はありません。ブラウザの使用可能なスペースに常に収まるようにするだけです。これは、すべてをビューポートに追加することを意味します。http://www.sencha.com/examples/#ExamplePlace:borderlayout%28uibinder%29のonModuleLoadのソースからの作業:

public void onModuleLoad() {
  Viewport viewport = new Viewport();
  viewport.setWidget(asWidget());
  RootPanel.get().add(viewport);
}

限りでFitLayoutは、実際には必要ありません。子を1つだけ取るコンテナには、基本的にGXT 3のFitLayoutがあります。2で発生する主な問題は3と同じです。一部の親は、その子のサイズ-そしてそれらは同じ方法で解決される必要があります。

デフォルトのfitlayoutのような動作をオプトアウトすることもできます-任意のSimpleContainer(つまり、ContentPanel、FramedPanelなど)でsetResize(false)を呼び出します。ただし、デフォルトの場合と同様に、通常はこれをオンにする必要があります。

于 2012-10-26T23:33:19.733 に答える