LinearLayout относится к подклассу ViewGroup отображающему «младшие» элементы класса View в линейном направлении, вертикально либо горизонтально.

С элементом LinearLayout необходимо быть крайне аккуратным, не переборщите с его применением. Если вы используете LinearLayout очень часто, задумайтесь над тем, чтобы заменить его элементом RelativeLayout.
1. Начните новый проект под названием HelloLinearLayout.
2. Откройте файл res/layout/main.xml и вставьте в него следующий код:

[code lang=»xml»]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text="red"
android:gravity="center_horizontal"
android:background="#aa0000"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text="green"
android:gravity="center_horizontal"
android:background="#00aa00"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text="blue"
android:gravity="center_horizontal"
android:background="#0000aa"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text="yellow"
android:gravity="center_horizontal"
android:background="#aaaa00"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
</LinearLayout>

<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text="row one"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row two"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row three"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row four"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>

</LinearLayout>
[/code]

Внимательно изучите данный XML. Он является коренным кодом LinearLayout задающим его вертикальную ориентацию — все «младшие» элементы View (которых у него два) будут установлены вертикально. Первым младшим элементом является другой LinearLayout использующий горизонтальную ориентацию, а вторым младшим элементом является LinearLayout использующий вертикальную ориентацию. Оба этих элемента LinearLayout включают в себя несколько TextView элементов, ориентация между которыми задана расположением их «старших» элементов LinearLayout.

3. Теперь откройте файл HelloLinearLayout.java и убедитесь, что он загружает раскладку res/layout/main.xml при помощи метода onCreate() :

[code lang=»js»]
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
[/code]

Метод setContentView(int) загружает файл раскладки для Activity, уточненного R.layout.main который в своем действии ссылается на файл раскладки res/layout/main.xml .

4. Запустите приложение.
На экране должно появиться следующее изображение:

Заметьте, что атрибуты XML определяют поведение каждого элемента View. Поэкспериментируйте с различными значениями android:layout_weight и увидите как в зависимости от «веса» по экрану распределяются элементы. Для более детальной информации о том, как элемент LinearLayout влияет на атрибут android:layout_weight обратитесь к документы Common Layout Objects.