[Android Studio] RelativeLayoutでウィジェットの位置を指定する

どうも、tatsuです!

今日は、RelativeLayoutでウィジェットの位置を指定する方法を説明します。

※この記事で使用しているAndroid Studioのバージョンは2.3.3です。

RelativeLayoutでウィジェットの位置を指定する

RelativeLayoutでは、ウィジェットの位置を相対的に指定することができます。
以下の例は、それぞれ真ん中のボタンを基準に位置を決定しています。

activity_main.xml

activity_main.xmlは以下のようにします。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.android.tatsu.myapplication.MainActivity">

        <Button
            android:id="@+id/centerButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="基準"
            android:textSize="20sp"
            android:layout_centerInParent="true"
            />

        <Button
            android:id="@+id/topButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="基準ボタンから見て上\n右端を基準に合わせる"
            android:textSize="20sp"
            android:layout_above="@+id/centerButton"
            android:layout_alignRight="@+id/centerButton"
            />

        <Button
            android:id="@+id/bottomButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="基準ボタンから見て下\n左端を基準にあわせる"
            android:textSize="20sp"
            android:layout_below="@+id/centerButton"
            android:layout_alignLeft="@+id/centerButton"
            />

</RelativeLayout>
補足
良く使われる属性を以下に書きだしました。

  • layout_above ・・・ 指定したウィジェットの上に配置する
  • layout_below ・・・ 指定したウィジェットの下に配置する
  • layout_toLeftOf ・・・ 指定したウィジェットの左に配置する
  • layout_toRightOf ・・・ 指定したウィジェットの右に配置する
  • layout_alignTop ・・・ 指定したウィジェットの上辺に位置を合わせる
  • layout_alignBottom ・・・ 指定したウィジェットの下辺に位置を合わせる
  • layout_alignLeft ・・・ 指定したウィジェットの左辺に位置を合わせる
  • layout_alignRight ・・・ 指定したウィジェットの右辺に位置を合わせる
補足2
また、基準ボタンに指定したandroid:layout_centerInParent属性は、親レイアウトに対しての相対位置を表します。
このようにRelativeLayoutでは親レイアウトを基準にしてウィジェットの位置を決めることもできます。
layout_alignParentTop(親レイアウトの上辺に位置を合わせる)や、layout_centerInParent(親レイアウトの中心に位置を合わせる)等たくさんあるので興味のある方は調べてみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です