중첩 레이아웃은 레이아웃들의 조합을 말하고 있다.

레이아웃 자체가 View 클래스에서 파생 됨으로 이들은 얼마든 중첩되게 이용하여도 된다.

간단하게 살펴보면 아래 샘플 코드를 보면 된다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
     >
   
    <TextView
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="상위레이아웃"   
    />
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
     >
  <TableRow>
     <TextView android:text ="1" />
     <TextView android:text ="2" />
     <TextView android:text ="3" />
 </TableRow>
 <TableRow>
     <TextView android:text ="3" />
     <TextView android:text ="2" />
     <TextView android:text ="1" />
 </TableRow>               
    </TableLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
     >
 <TextView
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="하위레이아웃"
 />
 </LinearLayout>
</LinearLayout>

여기에서 살펴보면 먼저 라이너 레이아웃이 먼저 붙고 그 아래 테이블 레이아웃 그리고 마지막으로 다시 라이너 레이아웃이 붙는다. 실행해보면 특성에 맞게 볼 수가 있다.

그 다음으로 페이지 전환 형식으로 구성해보면 다음과 같다

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
     >
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:orientation="horizontal"
     >
     <Button
      android:id="@+id/btn1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="1번"   
     />
     <Button
      android:id="@+id/btn2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="2번"   
     />
     <Button
      android:id="@+id/btn3"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="3번"   
     />
    </LinearLayout>   
     <FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical"
      >
       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical"
          android:id="@+id/page1"
      >
    <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="1번 페이지"  
    />          
      </LinearLayout>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:visibility="invisible"
          android:id="@+id/page2"
         >
          <EditText
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:id="@+id/t_edit"
              android:text="2번 페이지"             
          />
          <Button
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignRight="@id/t_edit"
              android:text="버튼"
          />
      </RelativeLayout>
      <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:visibility="invisible"
          android:id="@+id/page3"
         >
          <TableRow> android:text ="1" </TableRow>
          <TableRow> android:text ="2" </TableRow>
          <TableRow> android:text ="3" </TableRow>
      </TableLayout>
     </FrameLayout>
</LinearLayout>

main.xml 내용은 다음과 같이 하고 java 파일은 아래와 같이 입력하고 동작을 시켜보면 버튼을 누를 때 마다 다른 화면 처럼 지정한 레이아웃들이 보일 것이다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
     >
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:orientation="horizontal"
     >
     <Button
      android:id="@+id/btn1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="1번"   
     />
     <Button
      android:id="@+id/btn2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="2번"   
     />
     <Button
      android:id="@+id/btn3"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="3번"   
     />
    </LinearLayout>   
     <FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical"
      >
       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical"
          android:id="@+id/page1"
      >
    <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="1번 페이지"  
    />          
      </LinearLayout>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:visibility="invisible"
          android:id="@+id/page2"
         >
          <EditText
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:id="@+id/t_edit"
              android:text="2번 페이지"             
          />
          <Button
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignRight="@id/t_edit"
              android:text="버튼"
          />
      </RelativeLayout>
      <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:visibility="invisible"
          android:id="@+id/page3"
         >
          <TableRow>
           <TextView android:text ="1" />
           <TextView android:text ="2" />
          </TableRow>
          <TableRow>
              <TextView android:text ="2" />
           <TextView android:text ="1" />
          </TableRow>
      </TableLayout>
     </FrameLayout>
</LinearLayout>