私たちは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の制限を見つけました。
ご協力いただきありがとうございます!