5

我的布局代码及其图形表示是:

在此处输入图像描述

这只是一个例子,我Buttons的应用程序中有大约 30 个GridLayout. 我希望我Buttons在网格中填充它们的整个单元格,并且网格的列应该是均匀的宽度/高度。

我似乎无法完成它,欢迎任何帮助。

4

2 回答 2

9

我没有GridLayout太多推荐使用它的东西,我可以推荐你的是使用TableLayout. 我这样说是因为您的布局TableLayout非常适合 ' 的范围,并且在快速浏览GridLayout' 的文档之后,这似乎是一个问题:

GridLayout 不提供对权重原则的支持,如权重中定义的那样。通常,因此不可能配置 GridLayout 来在多个组件之间分配多余的空间。

中也GridLayout有介绍ICS

您可以在此处查看布局示例TableLayout

https://gist.github.com/3788301

如果您不希望表格填满整个高度,请从和中删除该weigthSum属性。TableLayoutlayout_weight="1"TableRows

于 2012-09-26T14:16:59.307 回答
2

使用 API 级别 21+,您可以使用layout_rowWeightand layout_columnWeight

 <GridLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:columnCount="2"
        android:rowCount="2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:id="@+id/button1"
            android:layout_gravity="fill"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:text="Button" />
        <Button
            android:id="@+id/button2"
            android:layout_gravity="fill"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:text="Button" />
        <Button
            android:id="@+id/button3"
            android:layout_gravity="fill"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:text="Button" />
        <Button
            android:id="@+id/button4"
            android:layout_gravity="fill"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:text="Button" />

    </GridLayout>
于 2018-03-09T19:09:28.473 回答