我们正在编写一个针对 ICS+ 的应用程序,并相信 GridLayout 是最好的布局范例,但似乎很少有人写过它,而且我们遇到了一些对齐问题。
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row_background"
android:rowCount="1"
android:columnCount="3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:useDefaultMargins="true"
android:background="@drawable/list_item_bg">
<ImageView
android:id="@+id/visibilityIcon"
android:layout_row="0"
android:layout_column="0"
android:src="@drawable/visibility_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<ImageView
android:id="@+id/windIcon"
android:layout_row="0"
android:layout_column="1"
android:src="@drawable/wind_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<ImageView
android:id="@+id/crosswindIcon"
android:layout_row="0"
android:layout_column="2"
android:src="@drawable/cloud_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
</GridLayout>
但是,左边的 2 个图标保持左对齐,最右边的图标以剩余空间居中。
本质上,我们需要做的是将每列的大小指定为总屏幕大小的 1/3(因为 3 列)。我认为这是 GridLayout 所做的,但似乎 'wrap_content' 会导致这种行为(有道理),但 'match_parent' 会导致第一列填满整个屏幕,而不是填充其单元格,这是我所期望的行为。
我们似乎已经尝试了重力、layout_gravity 等的所有组合,但要么我们根本上做错了,要么发现了 GridLayout 的限制。
谢谢你的帮助!