代号 一个容器等宽和等高

Codename One container equal width and height

我有一个 Android 项目,它在网格布局中使用多个容器。

容器的高度和宽度不同,我正在寻找一种使它们呈方形的方法。

我试过以下方法:

int w = container.getWidth();
container.setHeight (w);

这个不行,因为:

a) container.setHeight(i)不改变容器的高度,并且 b) container.getWidth() returns 0.

获得方形容器的最佳方法是什么?

编辑

这是更新后的屏幕截图:左边是之前,右边是使用代码示例之后。

大小由布局管理器设置。布局管理器有效地调用 setWidth/Height/X/Y 来确定组件的边界。因此,您对这些方法中的任何一种所做的任何更改都将被布局管理器覆盖。

要显式定义大小覆盖 calcPreferredSize() 和 return 统一大小,最好是计算出来的而不是硬编码的,例如:

Container myContainer = new Container(new GridLayout(1, 1)) {

    @Override
    protected Dimension calcPreferredSize() {
        Dimension d = super.calcPreferredSize();
        int size = Math.max(d.getWidth(), d.getHeight());
        d.setWidth(size);
        d.setHeight(size);
        return d;
    }
};