Мы пишем приложение, ориентированное на 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>
Однако два левых значка остаются выровненными по левому краю, а крайний правый значок центрируется с оставшимся пространством.
По сути, нам нужно указать размер каждого столбца, равный 1/3 (поскольку 3 столбца) от общего размера экрана. Я думал, что это то, что сделал GridLayout, но похоже, что 'wrap_content' вызывает такое поведение (имеет смысл), но 'match_parent' заставляет первый столбец заполнять весь экран, а не заполнять его ячейку, чего я ожидал.
Кажется, мы перепробовали все комбинации гравитации, layout_gravity и т. Д., Но либо мы принципиально делаем что-то не так, либо обнаружили ограничение GridLayout.
Спасибо за вашу помощь!