【Android】ボタンなどのパーツを横並び&横幅均等で配置する方法

久しぶりにAndroidアプリの開発をして、大分忘れていたので備忘録としてまとめ。
今回は2つ以上のボタンを横並びに配置し、かつボタンの横幅を均等に揃える方法です。

参考にさせていただいた記事はこちら。

PercentRelativeLayout で均等配置 – Qiita
https://qiita.com/kojionilk/items/50b0d1c111791a6b419f

なお、タイトルにある「PercentRelativeLayout」は非推奨となりましたので、使用しないようにとのこと。

 

コードはこちら。
LinearLayout という、要素を横一列もしくは縦一列に並べるときに使用するレイアウトの中に、並べたい要素を記述します。
今回は横並びにしたいので、orientation=”horizontal” を指定します。
なお、今回はボタンを2つ並べます。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <Button
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_height="35dp"
        android:layout_weight="1"
        android:text="ボタン1"/>
    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="35dp"
        android:layout_weight="1"
        android:text="ボタン2"
</LinearLayout>

今回重要なのは、4、10行目の layout_width=”0dp” と 6、12行目の layout_weight=”1″ という指定です。
これらを指定することで、2つのボタンを綺麗に同じ横幅かつ横並びにすることができます。
なお、layout_weight では重み付けを行っているので、例えば 1つ目のボタンで 1、2つ目のボタンで 2 を指定すると、1つ目のボタンは 1/3 に、2つ目のボタンは 2/3 の大きさになります。

 

ボタン以外にも、均等に横並びをさせたいことは結構あると思うので、覚えておくと便利です!
ただし、親要素は LinearLayout でなければならず、FrameLayoutRelativeLayout ではできないので、そこだけ注意が必要です。
使わないとすぐ忘れてしまうので…このくらいは覚えておきたいものですね。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG