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

标签 android android-widget android-layout

我想要一个包含 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);
}

这可以通过先获取屏幕宽度然后除以 5 来摆脱文字 60 来改进。但我想知道如何在 res/layout XML 文件中执行此操作?

如何指定高度与宽度相同? (我可以将宽度设置为 match_parent。)

最佳答案

您最好只是作为自定义布局管理器来执行此操作。从 ViewGroup 继承并实现所需的布局代码。如果您正在尝试执行通用布局算法(您不是),那么实现自定义布局管理器非常简单。
例如,将平台的 AbsoluteLayout 作为简单布局管理器的示例:https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/widget/AbsoluteLayout.java

关于android - 如何在 main.xml 中实现方形布局和按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4058618/

相关文章:

android - 如何计算 sw600dp 和 sw720dp 的尺寸值?

android - 为什么从 onMeasure 设置文本不会影响 TextView?

android - 如何通过 AsyncTask 正确使用 Intent 和 Uri 数据

android - 在 fragment 中使用 Butterknife 时绑定(bind) View 为空

java - 为什么我在 RecyclerView 上得到一个空引用

android - 我们可以使用自定义形状 API 在 Android 中创建像 iOS 一样的后退按钮吗

android - 带正文的 HttpDelete

android - 为什么我应该为 Android 主屏幕小部件使用 RemoteViews?

android - 在 xml 内的图像上绘制 View

Android,动态调整按钮的z-index?