代号 一个容器等宽和等高
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;
}
};
我有一个 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;
}
};