3

編集

内のコンポーネントのサイズを変更することで空白の動作を修正しVerticalPanelました。これは、コンソールで見落とされていたパネルの寸法に影響を与えたようです。方法がよくわかりません。

ただし、垂直スクロールバーを表示しているパネルはまだありません。

GWTプロジェクトでは、次の構造があります。

ページ

DockLayoutPanel
    North (header)
    Center (body)
    South (footer)
/DockLayoutPanel

SplitLayoutPanel$1
    West
        SplitLayoutPanel$2
             North
             Center
                 TabPanel
                     ScrollPanel
                         VerticalPanel
                             -Several widgets-
                         /VerticalPanel
                     /ScrollPanel
                 /TabPanel
             /Center
        /SplitLayoutPanel$2
    /West
    Center
/SplitLayoutPanel$1

私の問題はScrollPanelTabPanelそれ自体にVerticalPanelいくつかのウィジェットが含まれているのにあります。Tabこれは、のそれぞれに当てはまりますTabPanel

私の問題は、中央のすべてのコンテナのSplitLayoutPanel$2幅は100%の幅ですが、絶対メトリックでは同じサイズであるのにScrollPanel、横にかなりの白い領域がある水平スクロールバーが含まれていることです。VerticalPanel

状況を説明する

TabPanelの概要

これは、、、、TabPanelおよびScrollPanelですVerticalPanel。とが同じ幅TabPanelであるのに、水平スクロールバーがどのように存在するかに注目してください。右にスクロールすると、白い領域が表示されます。ScrollPanelVerticalPanel

スクロールおよび垂直パネルの詳細

ScrollPanelとすべてが598pxのVerticalPanel絶対幅を遊ばします。のWestコンポーネントのDockLayoutPanelサイズは600なので、一致します。また、開発者コンソールを起動すると、スクロールバーが消えることに注意してください。実際、パネル全体がその背後に表示されなくなり、垂直スクロールバーはポップアップしません。

スクロール

バーを右にスクロールすると、VerticalPanelが部分的に画面から外れ、ScrollPanelこの空白が表示されます。明らかに、空白を入れたくないので、スクロールバーはまったく必要ありません。この状況のすべてのパネルは、同じ幅(598px)のままです。右側の境界線を使用してサイズを変更するSplitLayoutPanelと、これらの値が(明らかに)増加しますが、パネルは同じ幅を共有し、空白は同じサイズのままですが、幅も広くなると思います。

2番目のタブには大量のテキストが含まれており、画面の外に続きますが、スクロールバーは表示されません。

問題の結論

  • 垂直スクロールバーはありません
  • 魔法のように呼び出された空白のある水平スクロールバー
  • コンポーネントは同じ幅を持っていると主張します

どんな助けでも大歓迎です。

編集

VerticalPanel幅を90%または80%に変更してみました。空白は影響を受けていないように見え、100%が実際に表示幅をカバーし、それ以上はカバーしていないことを示しています。

4

2 に答える 2

6

TabPanel(少なくともGWTからのもの)は裏返しにサイズ変更します:そのサイズは選択したタブのサイズによって異なります。したがって、ScrollPanel明示的にサイズを指定しない限り、垂直スクロールバーが表示されることはなく、コンテンツは実際に挿入したレイヤーからオーバーフローしSplitLayoutPanelますTabPanel

TabLayoutPanel一方、などのレイアウトパネルは、外側から内側にサイズ変更します。は、中央領域のSplitLayoutPanelサイズを設定し、次に、のサイズを設定します。したがって、コンテンツがオーバーフローした場合、垂直方向になります。スクロールバーが表示されます。TabLayoutPanelTabLayoutPanelScrollPanelScrollPanel

于 2013-03-04T14:57:19.453 に答える
2

最初のポイント:レイアウトパネルと非レイアウトパネルを混在させないでください。

2番目のポイント:適切なサイズ変更とスクロールバーが必要な場合は、常に幅と高さをパーセンテージで指定するようにしてください。

幅をとおっしゃっていたよう100%です。しかし、どうheightですか?

私があなたに提案するのは、

TabPanelに変更TabLayoutPanel

階層全体のすべてのパネルの高さを次のように設定します100%

于 2013-03-05T05:01:36.863 に答える