Programming Style

メニュー

初心者がアプリ開発者になるためのプログラミング学習サイト

[Android] android:layout属性について

android_android-attributes-layout_01

レイアウトXMLには、全要素に対してlayout_widthlayout_heightなどのlayout_xxxx形式の属性があります。この属性は、画面部品の幅や高さなど表示に関する内容を定義できます。ここでは、layout属性について説明します。

 

広 告

 

目次

前提条件

 

動作確認端末

 

1. layout属性について

layout属性は、その要素の親ViewGroupオブジェクト要素(LinearLayoutRelativeLayoutなど)によって、使用できる属性が変わります。

 

android_android-attributes-layout_01

例として、上記のような階層構造のレイアウトの場合を説明します。

 

1番上の階層にあるLinearLayout要素の子要素には、LinaerLayout用のlayout属性(Javaの場合はLinearLayout.LayoutParamsクラスで定義されている値)が使用できます。

 

上から2番目の階層のRelativeLayoutの子要素はLinearLayoutではなく、RelativeLayout用のlayout属性(Javaの場合はRelativeLayout.LayoutParamsクラスで定義されている値)が使用できます。

 

2. layout:width属性とlayout:height属性について

layout:width属性とlayout:height属性はすべてのViewオブジェクト要素(TextViewButtonなど)とViewGroupオブジェクト要素で使用することができ、必ず定義しなければならない属性です。

これらの属性に対しては、以下のように、px(ピクセル)など単位を使って絶対値を設定することができます。

 

<Button
        android:layout_width="300px"
        android:layout_height="50px" />

またAndroidによって予め用意された定数を使って相対値を設定することもできます。

 

wrap_content

そのコンテンツに合った必要最低限のサイズを意味します。

 

match_parent(apiレベル8まではfill_parent)

親ビューと同じサイズを意味します。表示領域いっぱいの長さとと読み替えて問題ありません。

 

以下にこれら定数の使用例を示します。

 

<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

 

一般的にpxのような絶対的な単位をwidthheightに使用することは推奨されていません。その代わりにdp(画面密度に依存しないピクセル)、wrap_contentmatch_parentなどの相対的な単位を使用することが推奨されています。こちらの方が、異なる画面解像度の端末間において、表示内容の違いを抑えることができるためです。

 

広 告