LinerLayoutは、縦向きまたは横向きに一直線にウィジェットを並べるレイアウトです。
Androidのレイアウトは入れ子にして使用できます。今回は縦方向のLinerLayoutに横方向のLinerLayoutを入れ子にして、TableLayoutのような使い方をしています。
LinerLayoutはAndroidのデフォルトのレイアウトなので、使用している方も多いのではないかと思います。本連載のこれまでのサンプルも、ほとんどがLinerLayoutです。図7はLinerLayoutの入れ子の様子を表す模式図です。
TableLayoutはカラム単位で位置が強制的にそろってしまいますが、この方法だとウィジェットを最大幅で表示できます。できるだけ大きく表示させたいもの(例えば、画像など)は、こちらのレイアウトの方が有効な場合があるかもしれません。
LinerLayoutの設定です。以降は前述したレイアウトと同一の設定項目の説明は省略します。
weightを未設定にすると、余白は余白のままで使用されません。
ウィジェット同士が互いに関連し合って位置を決めるレイアウトです。
見た目はTableLayoutと同じですが、設定はTableLayoutに比べるとかなり面倒くさいです。
「Full name」というTextViewを基準にして、右にEditTextを、下にTextViewを配置し、さらにそれらの右と下にEditTextを配置して……、を繰り返してレイアウトを調整しています。上図の矢印がリレーションを表しています。破線はベースラインで、これはTextViewをEditTextに合わせています。
「基準の位置を変更すれば、それに伴いほかのウィジェットも自動的に位置が調整できる」「斜めや円形にも配置が可能」というメリットがある一方、「気軽にウィジェットを追加・削除できない」という点や、「どのようにリレーションさせているかが自分でも分からなくなってしまう」という点がデメリットだと感じます。
今回はこれだけしか使用していませんが、これ以外にも「上部でそろえる」「下部でそろえる」「水平中央でそろえる」「垂直中央でそろえる」「上に配置」「左に配置」など、いろいろな方法でレイアウトを調整できます。
次ページでは、表示位置を絶対座標で指定する「AbsoluteLayout」と、最もシンプルな「FrameLayout」を紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.