Android 如何在main.xml中实现方形布局和按钮?
我想有一个布局5倍5个按钮。它们应该有相同的宽度和高度(它们应该是正方形)。我希望整个矩阵使用屏幕宽度(或高度,取决于旋转) 我目前用Java代码“手工”完成:Android 如何在main.xml中实现方形布局和按钮?,android,android-widget,android-layout,Android,Android Widget,Android Layout,我想有一个布局5倍5个按钮。它们应该有相同的宽度和高度(它们应该是正方形)。我希望整个矩阵使用屏幕宽度(或高度,取决于旋转) 我目前用Java代码“手工”完成: for (int y=0; y<5; y++) { TableRow tr = new TableRow(this); for (int x=0; x<5; x++) { Button b = new Button (this); ... tr.addView(
for (int y=0; y<5; y++) {
TableRow tr = new TableRow(this);
for (int x=0; x<5; x++) {
Button b = new Button (this);
...
tr.addView(b, 60, 60);
}
layout.addView(tr);
}
for(int y=0;y您需要查看一个您最好作为一个自定义布局管理器来执行此操作。从ViewGroup中创建子类并实现所需的布局代码。如果您尝试执行通用布局算法(您没有),则实现自定义布局管理器非常简单。
例如,请参见平台的AbsoluteLayout作为简单布局管理器的示例:我有两个想法
两者都与hackbod的建议非常相似
您可以创建类似于SquareButton扩展按钮或SquareTableLayout扩展TableLayout的内容,而不是从ViewGroup实现子类
重写构造函数类,以便将宽度或高度值替换为两者中的最小值。我不确定,但我猜,您将能够在XML描述中使用新布局
也许只创建一个SquareTableLayout更容易
然后只需将TableLayout中所有元素的宽度和高度设置为0dip,将所有元素的重量设置为1
假设你的表格中有NxN元素,它们都会因为相同的宽度和高度而得到相同的宽度和高度。使用表格…这样所有的按钮都是相同的宽度。你可以相应地更改高度。o这有什么帮助?!只需参考该链接,他可以在那里阅读答案:)我还没找到我想知道你在我的问题上编辑了什么。现在我注意到你把平方变成了平方。这就是为什么我没有发现任何有用的东西!现在我发现了这个问题:-似乎只有XML是没有办法的,我必须通过编程来实现它。。。