如何解决代号 一个容器等宽高
我有一个在网格布局中使用多个容器的 Android 项目。
容器的高度和宽度不同,我正在寻找一种方法使它们成为方形。
我已经尝试过以下方式:
int w = container.getWidth();
container.setHeight (w);
这不起作用,因为:
a) container.setHeight(i)
不会改变容器的高度,并且
b) container.getWidth()
返回 0。
获得方形容器的最佳方法是什么?
编辑
这是更新后的屏幕截图:左侧是使用代码示例之前,右侧是使用代码示例之后。
解决方法
大小由布局管理器设置。布局管理器有效地调用 setWidth/Height/X/Y 来确定组件的边界。因此,您对这些方法中的任何一种所做的任何更改都将被布局管理器覆盖。
明确定义大小覆盖 calcPreferredSize()
并返回一个统一的大小,理想情况下是一个计算的而不是硬编码的,例如:
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;
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。