0

いくつかのビュー(たとえばN)を一列に配置して、それぞれが画面の幅の1/Nを占めるようにしようとしています。LinearLayout(layoutWeight)を使用してこれを実現する方法は知っていますが、この行にある特定のビューの下に表示される別のレイアウトが必要です。これらのビューはすべてLinearLayoutにラップされているため、(明らかな理由で)このレイアウト内に追加のレイアウトを配置することはできません。また、LinearLayoutから特定のビューを参照して、その下にビューを配置することはできません。自分自身を説明するのを助けるためのいくつかの視覚的な援助:

ここに画像の説明を入力してください

したがって、上の3番目のボックスのすぐ下に灰色のボックスを表示したいと思います。現在、これは、画面の幅を取得してN個の等しい部分に分割し、このビューに適切なマージンを設定することで実現しています。しかし、私はこれがあまり好きではありません。それを達成するためのより良い方法はありますか?

4

2 に答える 2

1

Androidのxmlは本当に難しいので、これが私の考えです。

線形レイアウト内に 2 つのパーツを作成します。1 つの線形レイアウトと相対レイアウトは、LayoutWeight を使用して、元の線形レイアウトを使用して両方を分離します。

于 2012-04-09T19:02:12.237 に答える
1

その中心が 3 番目のボックスの中心の真下になるように 1 つの View または ViewGroup を配置したいですか?

それは可能ですが、あまりエレガントではありません:

アイデアは、テーブル レイアウトと android:layout_span を使用して 2 行目の 3 つのセルを結合し、そのテーブル スパン内で中央揃えのビューを使用することです。

テーブル レイアウトの例:

<TableRow>

    <TextView
        android:layout_column="0"
        android:gravity="center"
        android:padding="3dip"
        android:text="0" />

    <TextView
        android:layout_column="1"
        android:gravity="center"
        android:padding="3dip"
        android:text="1" />

    <TextView
        android:layout_column="2"
        android:gravity="center"
        android:padding="3dip"
        android:text="2" />

    <TextView
        android:layout_column="3"
        android:gravity="center"
        android:padding="3dip"
        android:text="3" />

    <TextView
        android:layout_column="4"
        android:gravity="center"
        android:padding="3dip"
        android:text="4" />
</TableRow>

<TableRow>

    <TextView
        android:layout_column="0"
        android:gravity="center"
        android:padding="3dip"
        android:text="0" />

    <RelativeLayout
        android:layout_span="3"
        android:padding="3dip" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:text="Button 1,2,3" />
    </RelativeLayout>

    <TextView
        android:layout_column="4"
        android:gravity="center"
        android:padding="3dip"
        android:text="4" />
</TableRow>

于 2012-04-09T19:29:18.720 に答える