[안드로이드 기초] Include (인클루드)
▣ 안드로이드 기초 [ Include ] |
● 안드로이드에서 레이아웃을 배치할때 여러개의 Layout에서 공통으로 사용하는 레이아웃이 있을 경우나, 하나를 여러개의 레이아웃으로 구성해서 작성할 경우에 사용되는 xml 태그가 "Include"인데요.
● 예를 들어 앱 사이트를 생각해 보겠습니다. 사이트는 제일 상단에 메뉴바, 베너, 메뉴버튼....등 이 위치하고 중간에 메뉴에 따른 내용이 출력이 되고 , 제일 하단에는 보통 회사의 주소, 전화번호 등...이 입력되어 있잖아요. 이때 만약에 중간 내용 출력부분에 링크가 걸려있는 글을 따라서 다른 화면으로 넘어가게 되면 다른 화면이 출력이 될겁니다. 그러나 상단 메뉴쪽과 하단 주소...쪽은 그대로 화면에 출력이 되고 중간부분의 내용만 바뀌게 될겁니다. 이런 화면을 구성 할때 사용하는 것이 "Include"입니다.
● 위 그림에서 보는 화면은 네개의 레이아웃으로 이루어져 있습니다. 전체는(activity_main) RelativeLayout으로 구성되어 있고 그 안에 세개의 LinearLayout이(content, foter, header) 포함되어서 구성 되었습니다. xml 소스를 하나씩 살펴보겠습니다.
1. header.xml (상단)
● 가로방향은 "match_parent"로 설정해서 부모 객체의 길이만틈 꽉 채우게 하고, 세로 방향은 콘텐트의 높이만큼으로 설정했습니다. 배경색을 회색으로 하고 레이아웃 안에 있는 객체들을 중간에 위치하게 설정하고, 텍스트 뷰에서 문자열을 출력하도록 하고 있습니다.
2. content.xml (중간)
● 가로/ 세로 폭을 상단과 하단을 제외하고 꽉 채워지도록 모두 "match_parent"로 설정하고 배경색을 하얀색으로 하고 , 레이아웃 안의 객체들을 중간에 위치하도록 하고(gravity=center), 텍스트 뷰를 사용해서 문자열을 출력하고 있습니다.
3. footer.xml (하단)
● 상단과 같은 방법으로 가로폭은 꽉 채우고 높이는 콘텐트의 크기만큼으로 설정하고, 다른것들과 구분하기 위해서 배경색을 달리 하였습니다.
● 이제 각각의 파일이 준비가 되었습니다. 이 세가지를 하나에서 함께 출력하도록 하는 activity_main.xml 파일을 살펴보도록 하겠습니다.
① include구문으로 준비한 세개의 파일을 호출한 모습입니다. 전체는RelativeLayout이고, 상단영역에 header.xml을 호출하고 android:layout_alignParentTop="true"으로 설정하여 RelativieLayout에서 상단에 위치하도록 한 모습입니다.
② 중간에는 content.xml을 호출하고, above와 below 구문을 사용하여 header 아래, footer 위에 위치하도록 하고 있습니다.
③ 마지막으로 footer.xml이 하단에 위치하도록(android:layout_alignParentBottom="true")설정하고 있습니다.
● 이렇게 처리를 하고 실행을 해보면 세개가 서로 겹치지 않고 분리되어 화면에 출력이 됩니다. 가로화면, 세로화면으로 변경을 해보면 상단과 하단은 그대로 있고, 중간 부분만 줄어들었다 늘었났다 합니다.
●이런 "Include" 를 사용하여 영역 분할을 하게 되면 좀 더 복잡하고 다양한 화면도 구성할 수 있을것입니다.