1

在 ExtGwt 中创建一个小应用程序时,我遇到了这样的问题:

有什么方法可以将 ContentPanel 的内容水平(并且仅水平)居中?

我知道一种解决方案是使用:

ContentPanel panel = new ContentPanel();
panel.setLayout(new CenterLayout());
//but here is the problem, I MUST set the size of panel
panel.setSize(400, 200);

但是,我需要这个面板具有动态计算的高度,因为它在不同的地方有不同的内容。

另一件事是使用 UIBinder,但这也不是一个好主意。

任何人都知道如何实现这样的解决方案?

4

1 回答 1

1

用 .布局ContentPanel其容器内部FitLayout。这样,ContentPanel' 的大小总是被管理的,你不必指定它的尺寸。

public class ContentPanelContainer extends LayoutContainer {

    @Override
    protected void onRender(Element parent, int index) {
        super.onRender(parent, index);

        setLayout(new FitLayout());

        ContentPanel panel = new ContentPanel();
        panel.setLayout(new CenterLayout());

        add(panel);
    }    
}
于 2012-05-07T16:30:43.963 回答