30

私は RelativeLayout の経験がありますが、提示された問題を解決する方法に出くわしたことはありません (回避したいハードコーディングのマージン値は別として)。

RelativeLayout で次の画像のようなものを作成したいと思います。

ここに画像の説明を入力

ボックスは独自のビューであり、オレンジ色の円を含むビューを、青いボックスを含むビューの右上隅の中央に配置したいと考えています。

android:alignTop="boxView"とを試してみましandroid:alignRight="boxView"たが、オレンジ色の円がボックス内に完全に収まりました。円がボックスの右上隅の上に中央になるようにしたい。

RelativeLayoutでその結果を得る方法を知っている人はいますか? できれば、オレンジ色のドット ビューの画面の端からマージンをハードコーディングする必要はありません。

4

4 に答える 4

31

このコードは、探しているものを作成しますが、マージンを使用します。これが作成中の動的構造である場合、コードでマージンを設定できるようになりました。ご覧のとおり、負のマージンを使用して、右上の図形を青いボックスの外に移動しました。これらは、移動しようとしている円の半分の高さである必要があります。このすべてをコードで実行して、円を右上隅の中央に配置できます。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:background="#0000FF"
            android:orientation="vertical" >
        </LinearLayout>

        <LinearLayout
            android:layout_width="26dp"
            android:layout_height="26dp"
            android:layout_alignRight="@+id/linearLayout1"
            android:layout_alignTop="@+id/linearLayout1"
            android:layout_marginRight="-13dp"
            android:layout_marginTop="-13dp"
            android:background="#FF00FF"
            android:orientation="vertical" >
        </LinearLayout>

    </RelativeLayout>
于 2012-05-01T16:15:53.353 に答える