Androidアプリでは、ユーザーが操作する画面は「ビュー(View)」の集合でできています。ですが、これらはただ並べればいいわけではなく、どのように並べるか、配置するかがとても重要です。
そこで出てくるのが「View」「ViewGroup」「Layout(レイアウト)」という3つの概念です。
■ View:画面上に表示される“部品”ひとつひとつ
View
は、ボタン、テキスト、画像、入力欄などの単体のUI部品のことです。Javaで言えば、JButton
や JTextField
のようなGUI部品に相当します。
代表的なViewの例:
TextView
:文字を表示Button
:ボタンを表示EditText
:文字入力欄ImageView
:画像を表示
つまり、1つ1つのパーツが View
です。
■ ViewGroup:Viewを“まとめて管理”する入れ物
ViewGroup
は、複数の View
をまとめて配置するための**コンテナ(親要素)**です。JavaのSwingでいえば JPanel
に似た考え方です。
ViewGroup
自体もView
の一種ですが、子要素(ViewやViewGroup)を中に含むことができる特殊なViewです。
代表的なViewGroup:
ViewGroup名 | 特徴 |
---|---|
LinearLayout | 子を縦か横に一列に並べる |
RelativeLayout | 子の位置を他のViewに対して相対的に決める |
ConstraintLayout | 複雑なUIでも制約を使って柔軟に配置可能 |
FrameLayout | 子を重ねて配置(基本は1つだけ使う) |
■ Layout:ViewGroupによる“配置ルール”
Androidでは ViewGroup
を「レイアウト」と呼ぶことが多いです。
たとえば以下のようなコードがあったとき:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="こんにちは"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:text="クリックしてね"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
これは「縦にViewを2つ並べた画面」を表しています。
LinearLayout
がViewGroup(レイアウト)- 中にある
TextView
やButton
がView
つまり、**Layout(ViewGroup)とは、「Viewの置き方・配置のルールを決める親の器」**なのです。
■ まとめ:ViewとViewGroupの関係
[画面]
└─ ViewGroup(例:LinearLayout)
├─ View(例:TextView)
└─ View(例:Button)
View
:個々の部品ViewGroup(Layout)
:それらをまとめる親- 画面は「ViewGroupの中にViewを配置して作る」
■ 最後に:なぜこれが大事か?
Android開発では、画面づくりがユーザー体験の土台になります。見た目や操作性を整えるには、「部品をどう並べるか」を理解することが不可欠です。
まずは、
LinearLayout
(縦・横の基本配置)ConstraintLayout
(柔軟な配置)
あたりから触ってみると良いかもしれません。