どっこと備忘録群

アウトプットしないとインプットできない私が Androidアプリ開発をメインとした備忘録を載せています。

RelativeLayoutを扱う

RelativeLayoutを使うときのポイント

  1. layout_alignParent***: 親に対する配置
  2. layout_center***: 中央寄せ
  3. layout_toStartOf / layout_toEndOf: 他のビューの左右
  4. layout_above / layout_below: 他のビューの上下
  5. layout_align***: 他のビューとの辺の揃え

1. 親に対する配置 (layout_alignParent*)

ビューを親のRelativeLayoutの端に寄せて配置するプロパティ。

  • layout_alignParentTop: 親の上端に配置。
  • layout_alignParentBottom: 親の下端に配置。
  • layout_alignParentStart: 親の左端に配置。
  • layout_alignParentEnd: 親の右端に配置。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:text="alignParentEnd" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="alignParentBottom" />

</RelativeLayout>

2. 中央寄せ (layout_center*)

RelativeLayoutの中央に配置する。

  • layout_centerVertical: 垂直方向(上下)の中央に配置。
  • layout_centerHorizontal: 水平方向(左右)の中央に配置。
  • layout_centerInParent: 垂直・水平両方の中央に配置。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Center\nIn\nParent" />
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="Center\nHorizontal" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:text="Center\nVertical" />

</RelativeLayout>

3. 他のビューに対する配置 (前後・上下)

他のビューのIDを基準に、ビューを配置する。

  • layout_toStartOf: 指定したビューの左側に配置。
  • layout_toEndOf: 指定したビューの右側に配置。
  • layout_above: 指定したビューの上側に配置。
  • layout_below: 指定したビューの下側に配置。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/text_view_target"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:text="target" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toStartOf="@id/text_view_target"
        android:padding="8dp"
        android:text="toStartOf" />
        
</RelativeLayout>

4. 他のビューとの辺の揃え (layout_align*)

指定したビューの端に自身の端を揃えて配置する。

  • layout_alignTop: 指定したビューの上端に揃える。
  • layout_alignBottom: 指定したビューの下端に揃える。
  • layout_alignStart: 指定したビューの左端に揃える。
  • layout_alignEnd: 指定したビューの右端に揃える。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/text_view_target"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="target" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/text_view_target"
        android:padding="4dp"
        android:text="alignTop" />

</RelativeLayout>

参考

最終更新: 2025.9.11