GridLayout 控件完成界面的布局

GridLayout 等控件来完成多行按钮操作

第一步,在布局文件中添加一个 GridLayout 控件,设置它的行列数和间距等属性,例如:

<GridLayout
    android:id="@+id/grid_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnCount="4"
    android:rowCount="2"
    android:orientation="horizontal"
    android:alignmentMode="alignMargins"
    android:columnOrderPreserved="false"
    android:useDefaultMargins="true"
    android:layout_marginBottom="16dp"
    android:layout_marginTop="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
/>

在这里,我们设置了 GridLayout 控件的列数为 4,行数为 2,水平方向排列,对齐模式为沿着每个纵向边框对齐,列顺序不保留,使用默认边距和间距,同时设置了上、下、左、右四个方向的外边距。

第二步,在 Java 代码中获取 GridLayout 对象,并循环添加 Button 控件到其中,例如:

GridLayout gridLayout = findViewById(R.id.grid_layout);

for (int i = 0; i < 8; i++) {
    Button button = new Button(this);
    button.setText("Button " + (i+1));
    GridLayout.Spec rowSpec = GridLayout.spec(i/4, 1f);
    GridLayout.Spec columnSpec = GridLayout.spec(i%4, 1f);
    GridLayout.LayoutParams layoutParams = new GridLayout.LayoutParams(rowSpec, columnSpec);
    button.setLayoutParams(layoutParams);
    gridLayout.addView(button);
}

在这里,我们使用循环创建 8 个 Button 控件,并设置它们的文本内容,然后用 GridLayout.LayoutParams 指定每个 Button 控件的行列和权重,并添加到 GridLayout 控件中。

最终的效果是,GridLayout 控件中会出现两排共八个 Button 控件,每排四个,排列紧密,且外部有一定距离。

posted @ 2023-05-17 20:41  YE-  阅读(155)  评论(0编辑  收藏  举报