5

AbsolutPanel をメイン パネルとして使用します。別の AbsolutPanel をヘッダーとしてメイン パネルに追加します。ここで、ScrollPanel をメイン パネルに追加します。ScrollPanel には、別のパネルに 30 個のボタンが含まれています。スクロール中に最後のボタンが完全に表示されません。

ヘッダー AbsolutPanel を削除すると、すべてが表示されます。ヘッダー パネルの高さを大きくすると、表示されるものが少なくなります。VerticalPanel を含む ScrollPanel のスクロール可能領域は、ScrollPanel の外側にあるヘッダー パネルの高さで正確に縮小されます。メイン パネルに「Overflow.SCROLL」を使用すると、verticalPanel の最後までスクロールできますが、この場合はヘッダー パネルもスクロールされます。

すべてのヘルプは大歓迎です - ありがとう!

この問題を再現するために、次のテストを行いました。

AbsolutePanel main = new AbsolutePanel();
RootLayoutPanel.get().add(main);
main.setSize("100px", "100%");

AbsolutePanel header = new AbsolutePanel();
main.add(header);
header.add(new Label("HEADER"));

VerticalPanel content = new  VerticalPanel();
ScrollPanel scroll = new ScrollPanel(content);
scroll.setSize("100px", "100%");
main.add(scroll);

for (int i = 0; i < 30; i++)
    content.add(new Button("Button :" + i));
4

2 に答える 2

5

絶対パネル、垂直パネル、スクロール パネルを組み合わせて使用​​しているため、いずれもレイアウト パネルではありません。したがって、スクロール パネルの高さをパーセンテージで指定するのではなく、特定の高さに表示する必要があります。

コードを変更する

scroll.setSize("100px", "100%");

scroll.setSize("100px", "500px");

そしてTADA、それは機能し、巻物を手に入れます.

于 2013-01-12T05:32:07.760 に答える
0

VerticalPanel は、親コンテナーの 100% を埋めようとしているテーブルに基づいています。あなたのレイアウトが良いアプローチだとは思わないでください。レイアウトについては、 https: //developers.google.com/web-toolkit/doc/latest/DevGuideUiPanels を確認してください。

DockLayoutPanel を使用して、ヘッダー付きの高さ 100% のレイアウトを作成することをお勧めします。また、パネル名に [Layout] を含むパネルを使用する場合は、VerticalPanel を使用しないでください。それらは Div ベースです。ブラウザがどのように処理するかわからない場合は、div とテーブルを混在させないことが重要です。

于 2013-01-11T17:28:14.140 に答える