1

最初のビューの右側にビューを設定し、RelativeLayout内でそれらを下揃えにしようとしています。

次のコードは、動作するはずです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="#999999"
    android:padding="10dp" >

    <View
        android:id="@+id/v1"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:background="#FFFFFF" />

    <View
        android:id="@+id/v2"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignBottom="@id/v1"
        android:layout_toRightOf="@id/v1"
        android:background="#FF0000" />

</RelativeLayout>

しかし、結果は私が期待したものではありません。

結果

ここでの問題は何ですか?

私が期待していることを明確にするために、両方の立方体を互いに下に揃え、赤い立方体を白い立方体の右側(外側)に配置する必要があります。

編集:

私は問題を見つけました。これはこのレイアウトではなく、含まれている親リストです(これは適切なHorizo​​ntalListViewです)。どういうわけか子ビューのサイズを変更しているようで、それが問題の原因です。

4

3 に答える 3

1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="300dp"
                android:layout_height="300dp"
                android:background="#999999"
                android:padding="10dp" >

    <View
            android:id="@+id/v1"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_centerInParent="true"
            android:background="#FFFFFF" />

    <View
            android:id="@+id/v2"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="#FF0000" 
            android:layout_alignBottom="@+id/v1" 
            android:layout_alignBaseline="@+id/v1"
            android:layout_alignRight="@+id/v1"/>

</RelativeLayout>

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

私は正しいですか?;)

于 2013-01-30T20:00:29.307 に答える
1

それは私のために働いた。私の推測では、テストしているもののspは、デフォルトのsp = dpから縮小されています。これにより、dp パディングがブロックを押し上げます。これは、灰色のブロックと白いブロックの間の利用可能なスペースの量が次のとおりであるためです。

(300-200)/2 - 10 = 40

あなたの赤いブロックは50です。

sp は設定に基づいてスケーリングされ、通常はテキストのスケーリングに使用されるため、より一貫した結果が必要な場合は dp を使用します。

于 2013-01-30T20:06:25.293 に答える
1

単位として sp を使用しないでください。代わりに dp (デバイス ピクセル) を使用してみてください。これにより、デバイスが考慮されます。あなたの場合、画像は適切にスケーリングされていないため、この結果になります。ビュー v2 に重力を設定することもできます。何かのようなもの :

android:gravity="botton|right"

または、ベースラインを次のように設定することもできます。

android:layout_alignBaseline="@+id/v1"

alignRight を次のように設定します。

android:layout_alignRight="@+id/v1"
于 2013-01-30T20:36:11.537 に答える