4. 기본 컨트롤 – 13. TabHost

이번에는 같은 영역에 보여줄 컨텐츠를 선택할 수 있게 하여 일관성있는 화면 구성을 할 수 있는 TabHost를 이용하는 간단한 실습을 합시다.

[그림] TabHost 실습 실행화면
[그림] TabHost 실습 실행화면

먼저 activity_main.xml 파일에 컨트롤을 배치합시다.

TabHost는 TabWidget과 FrameLayout으로 구성합니다. TabWidget은 사용자가 원하는 컨텐츠(혹은 기능)를 선택하는 영역이고 FrameLayout은 컨텐츠 영역입니다.

TabWidget의 id 속성은 @android:id/tabs로 지정하고 FrameLayout의 id 속성은 @android:id/tabcontent로 지정합니다.

여기에서는 언어, 기술, 예제 Tab으로 구성할 것입니다. 각 Tab을 선택하였을 때 컨텐츠를 FrameLayout에 배치합니다. 각 컨텐츠는 간단하게 LinearLayout과 그의 자식으로 TextView를 배치하는 것으로 할게요.

 

이제 MainActivity.java 파일에 소스 코드를 편집합시다. onCreate 메서드에 TabHost 개체를 참조하기 위해 findViewById 메서드를 호출한 후에 TabHost의 setup 메서드를 호출합니다.

 

세 개의 Tab을 추가할 것입니다. 이를 위해 세 개의 TabSpec 개체를 생성합니다. 화면에 표시할 부분은 setIndicator 메서드로 정하고 매핑할 컨텐츠는 setContent 메서드로 지정합니다. 그리고 TabHost의 addTab 메서드로 탭을 추가합니다.

 

TabHost의 현재 Tab을 설정할 때는 setCurrentTab메서드를 호출합니다.

 

다음은 MainActivity.java 파일의 내용입니다.