4

私の RelativeLayout には、20、70、35 などの異なる高さの ImageView/TextView コントロールがほとんど含まれていません。コントロールは一列に並んでいます。高さを最大コントロールの高さと同じ値 (たとえば 70) に拡張する必要があります。問題は、私のレイアウトでは RelativeLayout コンテナーとすべてのコントロールが代わりに画面の高さに拡張されることです。

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >

        <ImageView 
            android:src="@drawable/image1" 
            android:background="#FFCCDDEE"
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            />

        <ImageView 
            android:src="@drawable/image2" 
            android:background="#FFCCDDEE"
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:layout_centerVertical="true"
            android:layout_centerInParent="true"
            />

        <ImageView 
            android:src="@drawable/image3" 
            android:background="#FFCCDDEE"
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true"
            />

    </RelativeLayout>

RelativeLayout の高さを 70 に設定できますが、事前に子コントロールのサイズがわからないことを考慮してください。

LinearLayout でも目的の効果を達成できますが、RelativeLayout を使用したいと考えています。

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >

        <ImageView 
            android:src="@drawable/image1" 
            android:background="#FFCCDDEE"
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            />

        <ImageView 
            android:src="@drawable/image2" 
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            />

        <ImageView 
            android:src="@drawable/image3" 
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            />

    </LinearLayout>

何か案は?

4

1 に答える 1

0

パディング/マージンの使用について考えたことはありますか?

<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

    <ImageView 
        android:src="@drawable/image1" 
        android:background="#FFCCDDEE"
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:padding="70dip"
        />
    ....

その XML は 140 x 140 の画像を生成するはずです (私はそう思います)。動的にはなりませんが、XML はそのような動的なことを行うことができません。

より動的なことをしたい場合は、すべての要素のサイズを取得し、最大のものを見つけて、すべてのオブジェクトをそのサイズに設定するコードを書くことができます。

このリンクはそのために役立つかもしれません。

幸運を!

于 2011-12-29T23:48:17.803 に答える