【Android開発】レイアウトクラス

  • このエントリーをはてなブックマークに追加

レイアウトクラスはフレーム枠の画面位置や大きさ、およびウィジェットクラスの配置を決定するもので、レイアウトクラス同士は入れ子状態になっても問題はありません。
機能面ではViewGroupクラス/Viewクラスを継承するのでこの両クラスのメソッドを使用することができます。
TableLayoutクラスはLinearLayoutクラスを経由してViewGroupクラス/Viewクラスを継承し、ScrollViewクラスはFrameLayoutクラスを経由してViewGroupクラス/Viewクラスを継承します。
AbsoluteLayoutクラスはSDK1.5以降非推奨になっている為、ここでは割愛をしています。

LinearLayoutクラス

LinearLayoutクラスはUIオブジェクトを縦方向または横方向に順番に並べていきます。
LinearLayoutクラスの実装メソッドはsetOrientationメソッド/setGravityメソッドの2つだけです。

    • setOrientationメソッド

子の配置を設定します。
メソッドの引数、またレイアウトXML上での属性値は以下の表のようになります。

メソッド引数 属性値 概要
setOrientation.VERTICAL vertical 縦方向への配置
setOrientation.HORIZONTAL horizontal 横方向への配置
    • setGravityメソッド

子の配置位置やサイズ変更を設定します。
レイアウトエリアの横位置を左寄せ・中央揃え・右寄せ、縦位置を上揃え・中央揃え・下揃えを指定します。またサイズ変更は、幅や高さをレイアウト枠いっぱいに広げるかどうかの設定を行います。

レイアウト設定の一例を下図に掲載。

TableLayoutクラス

TableLayoutクラスは、UIオブジェクトをテーブルのマス目に配置します。
また、TableLayoutは行数のTableRowだけを集約し、列数の集約はTableRowが行います。

TableLayoutのメソッド/属性と概要

メソッド 属性値 概要
setColumnCollapsed android:collapseColumns 折り畳み
setColumnShrinkable android:shrinkColumns 幅縮小可の指定
setColumnStretchable android:stretchColumns 幅拡張可の指定

TableRowの属性と概要

属性 概要
android:layout_column 配置する列番号の指定
android:layout_span 占有する列数の指定

FrameLayoutクラス

FrameLayoutクラスは、1つだけのUIオブジェクトを格納するためのレイアウトクラスです。
1つのオブジェクトを他のオブジェクトとから独立させたい場合に使用します。

FrameLayoutクラスのメソッドと属性

メソッド 属性 概要
setForeground android:foreground 前景の設定
setForegroundGravity android:foregroundGravity 前景オブジェクトの配置方法

setForeground

前景設定となる為、追加するオブジェクトが背景よりもサイズが大きい場合FrameLayoutは前景だけの表示となります。
これは追加オブジェクトに対してオーバーレイした形で表示されることを意味しています。

setforegroundGravity

前景となるオブジェクトの配置方法を指定するメソッドです。
属性値は、以下の表の通りGravityの属性値と同じです。

setforegroundGravity属性値

配置パターン 属性値 概要
横方向の位置 left 左寄せ
right 右寄せ
center_horizontal 中央寄せ
縦方向の位置 top 上寄せ
bottom 下寄せ
center_vertical 中央寄せ
縦横一括 center 縦横中央寄せ
横幅合わせ fill_horizontal オブジェクトの幅をエリアいっぱいに合わせる
高さ合わせ fill_vertical オブジェクトの高さをエリアいっぱいに合わせる
縦横一括合わせ fill 横幅・高さをエリアいっぱいに合わせる

ScrollViewクラス/HorizontalScrollViewクラス

Android端末の縦幅・横幅を超えたレイアウトを実装したい場合に縦方向へのスクロール対応、横方向へのスクロール対応を行うことができます。
スクロール対応を行わず、実機の画面サイズを超過したレイアウトを設計した場合、画面からはみ出る部分での操作は不可能です。
また、スクロールさせたいエリアも自由に設定することができ、目的に応じてスクロールさせたいオブジェクトエリアの1つ上の階層にScrollViewタグを設定させてあげます。

ScrollViewタグ

縦方向へのスクロールを可能とする

HorizontalScrollViewタグ

横方向へのスクロールを可能とする

SNSでもご購読できます。

コメントを残す

*