我的布局代码及其图形表示是:
这只是一个示例,我在Buttons
内的应用程序中大约有30 GridLayout
。
我希望我的Buttons
填充网格中的整个单元格,网格的列应该是均匀的宽度/高度。
我似乎无法完成任务,欢迎任何帮助。
答案 0 :(得分:8)
我没有使用GridLayout
来推荐使用它的内容,我建议您使用TableLayout
。我这样说是因为你的布局非常适合TableLayout
的范围,在快速浏览GridLayout
的文档后,这似乎是一个问题:
GridLayout不提供权重原则的支持,如权重中所定义。通常,因此无法配置GridLayout以在多个组件之间分配多余空间。
GridLayout
中也引入了ICS
。
您可以在此处使用TableLayout
查看布局示例:
https://gist.github.com/3788301
如果您不希望表格填满整个高度,请从weigthSum
中TableLayout
和layout_weight="1"
移除TableRows
属性。
答案 1 :(得分:1)
With API level 21+ you can use layout_rowWeight
and 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>