검색결과 리스트
글
중첩 레이아웃은 레이아웃들의 조합을 말하고 있다.
레이아웃 자체가 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>
레이아웃 자체가 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>
RECENT COMMENT