java - GXT 3 ContentPanel 自动高度或 FillLayout

标签 java gwt gxt

我无法让 ContentPanel 获取 BorderLayoutContainer 内的所有可用高度。

在 2.x 版本中它很简单,如 setLayout(new FillLayout()); , 但它不再对 GXT 3.0.x 有效。

为了让我的问题更清楚,我从这里拿了例子GXT 3 demo , 它应该是这样的:Border layout demo 但是当将示例中的相同代码复制到我的项目中时,它看起来像这样: same thing copied to my project

布局似乎被破坏了。它在 Chrome 22.0.x 和 Firefox 16.0.1 中呈现相同。 我使用 GWT 2.4 和 GXT 3.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" />

最佳答案

Explorer 正在分配一个大小,这可能是一个错误,因为它会降低示例的可移植性。大小是从父级(具有演示和源的选项卡面板)分配的,而父级又从父级(主选项卡面板)获取它,依此类推。要解决这个问题,请确保设置一个大小。

通常,您不想在根小部件上设置大小 - 您只是想让它始终适合浏览器中的可用空间。这意味着您要将所有内容添加到视口(viewport)。在 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 而言,它实际上不是必需的 - 任何只带一个 child 的容器在 GXT 3 中基本上已经有一个 FitLayout。2 中出现的主要问题与在 3 - 一些 parent 没有将尺寸传递给它的 child - 他们需要以同样的方式解决。

您也可以选择退出类似 fitlayout 的默认行为 - 在任何 SimpleContainer(即 ContentPanel、FramedPanel 等)上调用 setResize(false)。不过,您通常会希望它处于打开状态,这是默认设置。

关于java - GXT 3 ContentPanel 自动高度或 FillLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093866/

相关文章:

java - JPanel里面的另一个

java - 使用 Guava Ordering 对对象列表进行多标准排序

java - GXT - 如何将网格过滤器参数添加到请求 URL(获取参数)?

java - 如何在 CSV 导出期间保留日期格式

json - 使用GWT播放音频数据

java - EXT GWT + Java EE

java - GXT 验证反馈

java - 类对象的生命周期 : Java

java - 有没有办法让一个类中的 JTextArea 响应另一个类中的 JButton 单击?

java - fragment 设计