1

私は、ListView各行がGridLayout2 つの行を持つ を持っています。各リスト項目は、それぞれを押すことができるため、少なくとも 48 dp の高さ (プレス ターゲットの推奨される最小サイズ) にする必要がありGridLayoutます。

これを行うために、GridLayoutを a の内側に配置しFrameLayoutFrameLayoutを最小の高さ 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>
4

1 に答える 1

0

パフォーマンスの問題が発生していない限り、そのままにしておきます。パフォーマンスの問題が発生し、追加のFrameLayout が原因である場合 (GridLayout を直接使用すると問題が解消されるかどうかがわかります)、(その場合にのみ) GridLayout を直接修正してみてください。

もしそうなら、私が知っているのは、 GridLayout が柔軟性の原則に従って余分なスペースを分配するということです。その原則が曖昧さを解消するのに十分でない場合は、一番右の列と一番下の行に余分なスペースを与えるという動作が見られます。行/列属性を試して、それを均等に分散する方法を理解していることを確認します。あなたの場合はTextViewsであるGridLayoutの子の重力を設定することでそれを制御できます。それらを「中央」に設定してみて、それが役立つかどうかを確認してください。そうでない場合は、次の場所で詳細を確認してください。

http://developer.android.com/reference/android/widget/GridLayout.html

于 2012-11-19T21:08:18.210 に答える