滚动条和边距的错误计算(GWT,GXT)

时间:2013-11-25 14:23:08

标签: gwt scrollbar gxt

我希望在centerlayoutcontainer中有一个固定宽度的面板。并且centerlayoutcontainer应该有滚动条,以便面板始终完全可见。面板周围应有20px的边距,因此固定面板周围有一点空间。我无法完成这项工作,因为滚动条计算不正确。看看我的例子。如果更改对话框的高度以使固定面板比对话框大,则固定面板的左侧不再可见,并且不再可见。

这是一个错误吗?你能告诉我如何才能得到这项工作吗?

我正在使用gwt 2.5.1和gxt 3.0.6。该问题可在每个浏览器中重现。

final Dialog dialog = new Dialog();
dialog.setMaximizable(true);

final BorderLayoutData eastData = new BorderLayoutData(170);
eastData.setMargins(new Margins(0, 0, 0, 5));
eastData.setCollapsible(true);

final MarginData centerData = new MarginData();

final BorderLayoutContainer blcContent = new BorderLayoutContainer();
blcContent.setBorders(true);

final VerticalLayoutContainer vlcCenter = new VerticalLayoutContainer();
vlcCenter.setScrollMode(ScrollMode.AUTO);

final CenterLayoutContainer clcCenter = new CenterLayoutContainer();

final SimpleContainer con = new SimpleContainer();
con.setPixelSize(1322, 762);

final ContentPanel cpCenter = new ContentPanel();
cpCenter.setHeadingHtml("Center");
cpCenter.setPixelSize(1282, 722);

con.add(cpCenter, new MarginData(20));
clcCenter.add(con);
vlcCenter.add(clcCenter, new VerticalLayoutData(1, 1));

final ContentPanel cpEast = new ContentPanel();
cpEast.setHeadingHtml("East");

blcContent.setEastWidget(cpEast, eastData);
blcContent.setCenterWidget(vlcCenter, centerData);

dialog.add(blcContent);
dialog.setPixelSize(Window.getClientWidth() - 100, Window.getClientHeight() - 100);
dialog.show();

Window.addResizeHandler(new ResizeHandler() {
  @Override
  public void onResize(ResizeEvent event) {
    if (dialog.isMaximized()) {
         dialog.setPixelSize(Window.getClientWidth(), Window.getClientHeight());
      } else {
         dialog.setPixelSize(Window.getClientWidth() - 100, Window.getClientHeight() - 100);
      }
    }
});

0 个答案:

没有答案