2

さまざまなタイプのGWTパネルが使用されている画面が多数あります。

多くの画面に共通する問題の1つは、コンテンツサイズが実行時に導出されることです。したがって、パネルの高さ(垂直/水平/ドックパネル)を定義し、パネル内に新しいコンポーネントが追加されたり、コンテンツがそれ以上になったりしても、パネルの高さは同じままです。そのため、内容を見ることができません。UIのルックアンドフィールが最悪になります。

身長の問題をどのように処理しますか?画面で何かが変更されたときに、すべてのパネル/ウィジェットの高さを調整するように手動でコーディングする必要がありますか?それはコーディングの非常に悪い方法ではありませんか?また、現在、いくつかの場所にデータグリッドがあります。レコードの数が非常に少ない場合、データグリッドの下に大きなスペースが残されているのがわかります。これらのケースをどのように処理するかわかりません。

コメントに従っていくつかの例を使用して以下を更新しました。コンテンツが垂直方向に大きくなることがわかっている場合はいつでも、FlowPanelを選択できるということですか。なぜなら、私たちが使用した画面のいくつかは垂直パネル/水平パネルであり、その中にユーザーが何かをクリックすると、新しいフィールドが追加されて表示されます。そのため、垂直パネル/水平パネルの高さは自動的に調整されません。もう1つの例は、Dock Layout Panelコンテンツ領域内にメインの垂直パネルがあり、その中にコンテンツが異なる可能性のあるウィジェットがあることです。では、サイズが異なるコンテンツにFlowPanelを使用する場合、外側のパネルはどうでしょうか。調整されますか?繰り返しになりますが、使用したパネルの種類-Dock Layout Panelは、固定ヘッダー、フッター、左側のメニュー、およびコンテンツ領域で使用されます。コンテンツ領域内でスクロールパネルが使用されます。

4

1 に答える 1

9

GWT (および HTML) では、パネルの高さを設定するか、自然に拡大することができます。一般に、何かの高さを設定すると、自然に拡張する能力が失われます。

GWT の一部のパネルは暗黙的に独自の高さを設定する (または高さを設定する必要がある) ため、動的なサイズのコンテンツには適していません。たとえば、LayoutPanels と ScrollPanels は動的に調整できず、サイズ情報をプログラムで提供する必要があります。一方、FlowPanels と HTMLPanels は動的な高さに適しているため、高さを明示的に設定しない方がよいでしょう。

スクロール パネルが必要な場合は、もちろん、パネルの高さを定義する必要があります。それ以外の方法で、いつスクロールし、いつ大きくなるかを知ることができますか? ただし、(800px などに設定した) ScrollPanel 内に FlowPanel (自動的に展開) を配置できます。次に、FlowPanel にコンテンツを追加すると、ScrollPanel 内で展開されます。その後、ユーザーはスクロールして、FlowPanel のさまざまな部分を表示できます。

トラブルシューティングのヒント:

  1. 自然に拡張したいパネルの高さを設定していないことを確認してください
  2. 常に同じサイズである必要があるパネルの高さを設定していることを確認してください
  3. Horizo​​ntal/VerticalPanels の代わりに FlowPanels を使用してみてください
  4. *LayoutPanels と AbsolutePanels は常に明示的なサイズが必要であり、コンテンツを追加しても動的に大きくなることはありません。コンテンツとともに成長させたいものは、おそらく FlowPanel または HTMLPanel である必要があります。
于 2012-08-08T14:25:47.647 に答える