私は、ListView
各行がGridLayout
2 つの行を持つ を持っています。各リスト項目は、それぞれを押すことができるため、少なくとも 48 dp の高さ (プレス ターゲットの推奨される最小サイズ) にする必要がありGridLayout
ます。
これを行うために、GridLayout
を a の内側に配置しFrameLayout
、FrameLayout
を最小の高さ 48 dp に設定しlayout_gravity
、 のGridLayout
を中央に設定しました。を使用せずにFrameLayout
の最小の高さを設定しただけでは、の偽の空間分布のGridLayout
ために、全体を垂直方向にうまく中央揃えにすることができません。GridLayout
したがって、 を使用するFrameLayout
と望ましい結果が得られますが、XML ファイルに「この GridLayout レイアウトまたはその FrameLayout 親は役に立たない」という Lint 警告が生成されます。明らかにそれは正しいものを並べるので役に立たないわけではありませんが、私が見逃したより良い方法はありますか?
これが私の XML です (この状況には関係ないため、GridLayout の TextView の束を切り取っています)。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="48dp"
>
<GridLayout
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical"
android:rowCount="2"
android:useDefaultMargins="true"
>
<TextView android:id="@+id/number"
android:layout_gravity="center_vertical"
android:layout_marginLeft="2dp"
android:layout_rowSpan="2"
android:minEms="1"
/>
<TextView android:id="@+id/a"
android:layout_gravity="center_vertical"
android:layout_rowSpan="2"
android:minEms="2"
/>
<TextView android:id="@+id/b"
android:layout_marginBottom="0dp"
android:minEms="3"
/>
<TextView android:id="@+id/c"
android:layout_marginTop="0dp"
android:minEms="3"
/>
...
</GridLayout>
</FrameLayout>