Android GridLayout等宽列宽

在Android的GridLayout中真的不可能轻易地强制相等的列宽? 尝试明显的布局

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:columnCount="4" android:rowCount="8" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_gravity="center" android:text="Button 1" /> <Button android:id="@+id/button2" android:layout_gravity="center" android:text="Button 2" /> <Button android:id="@+id/button3" android:layout_gravity="center" android:text="Button 3" /> <Button android:id="@+id/button4" android:layout_gravity="center" android:text="Button 4" /> </GridLayout> 

…将最右边的button居中放在明显比其他三个更宽的列中。 (玩button文本,你可以很容易地变得更糟糕的例子。)

我阅读了关于GridLayouts中多余空间分布的Android文档,但似乎很明显,甚至在这种情况下,甚至需要列宽(通常甚至可能是任何一种),我不得不相信我错过了一些明显/容易的事情。

Solutions Collecting From Web of "Android GridLayout等宽列宽"

改为使用表格布局,并指定拉伸列。

 <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textViewLeaveRemainingDescription" android:stretchColumns="0,1"> <TableRow> <Button android:id="@+id/button1" android:layout_gravity="center" android:text="Button 1" /> <Button android:id="@+id/button3" android:layout_gravity="center" android:text="Button 3" /> </TableRow> <TableRow> <Button android:id="@+id/button2" android:layout_gravity="center" android:text="Button 2" /> <Button android:id="@+id/button4" android:layout_gravity="center" android:text="Button 4" /> </TableRow> </TableLayout>