Skip to content

Most visited

Recently visited

navigation

線形レイアウト

このドキュメントの内容

  1. レイアウト ウェイト

キークラス

  1. LinearLayout
  2. LinearLayout.LayoutParams

LinearLayout は、すべての子ビューを、垂直または水平の一方向にそろえるビューグループです。 android:orientation 属性によってレイアウトの方向を指定することができます。

LinearLayout のすべての子ビューは順にスタックされるので、垂直方向のリストには、幅に関係なく、1 つの行に 1 つの子ビューしかありません。一方、水平方向のリストは、1 行分の高さしかありません(最も高い子ビューの高さ + パディング)。 LinearLayout は子ビュー間の「マージン」と、それぞれの子ビューの「グラビティ」(右揃え、中央揃え、左揃え)を遵守します。

レイアウト ウェイト

LinearLayout では、android:layout_weight 属性を持つ個々の子ビューへの weight も指定します。この属性は、画面上で占めるスペースという観点で「重要度」を表す値をビューに指定します。 この weight 値が大きいほど、親ビューの残りのスペースを埋めるように拡大されます。子ビューに weight 値を設定することで、ビューグループの残りのスペースを、宣言されたウェイトの割合に応じて割り当てることができます。 デフォルトの weight 値は 0 です。

たとえば、3 つのテキスト フィールドがあって、そのうち 2 つが weight 値に 1 を宣言し、もう 1 つが weight 値を宣言しない場合、weight 値のない 3 番目のテキスト フィールドは拡大せず、そのコンテンツが必要とする面積だけを占めます。 他の 2 つで、3 つのフィールドすべてのサイズを決めた後で残るスペースを等分します。 3 番目のフィールドの weight 値を(0 ではなく)2 とすると、他の 2 つのフィールドよりも重要度が高いと宣言したことになるので、残りのスペース全体の半分を占めます。他の 2 つのフィールドはその残りを等分します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:orientation="vertical" >
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/to" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/subject" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="top"
        android:hint="@string/message" />
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="@string/send" />
</LinearLayout>

LinearLayout の各子ビューで利用可能な属性については LinearLayout.LayoutParams で詳細をご確認ください。

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)