Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在main.xml中实现方形布局和按钮?_Android_Android Widget_Android Layout - Fatal编程技术网

Android 如何在main.xml中实现方形布局和按钮?

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(

我想有一个布局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(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是没有办法的,我必须通过编程来实现它。。。