검색결과 리스트
android layout에 해당되는 글 2건
- 2011.12.13 [Android] 동적 레이아웃
- 2011.12.13 [Android] 중첩 레이아웃
글
코드상에서 실행해서 종종 레이아웃을 바꿔야 할 경우가 있다.
이럴 경우에는 java 파일 상에서 해결을 해 줘야 한다.
LinearLayout linear = (LinearLayout)findViewId(R.id.레이아웃아이디);
linear.setOrientation(LinearLayout.VERTICAL);
이런 식으로 바꿔주면 된다.
물론 레이아웃 뿐 아니라 다른 컴포넌트 역시 이런 식으로 바꿔주면 된다.
이럴 경우에는 java 파일 상에서 해결을 해 줘야 한다.
LinearLayout linear = (LinearLayout)findViewId(R.id.레이아웃아이디);
linear.setOrientation(LinearLayout.VERTICAL);
이런 식으로 바꿔주면 된다.
물론 레이아웃 뿐 아니라 다른 컴포넌트 역시 이런 식으로 바꿔주면 된다.
설정
트랙백
댓글
글
중첩 레이아웃은 레이아웃들의 조합을 말하고 있다.
레이아웃 자체가 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