본문 바로가기

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

올해는 머신러닝이다.

[팁] Activity에서 XML을 이용해 Tab을 사용시 쉬운 팁 본문

Android/Tip&Tech

[팁] Activity에서 XML을 이용해 Tab을 사용시 쉬운 팁

행복한 수지아빠 2011. 3. 11. 16:05
 아시는 분도 많을거라 생각하지만....
 정리 삼아서 적어봅니다.
 아이폰의 TabView가 하단에 위치한 관계로...
 가끔 안드로이드를 기획하시는 분들 중에 Tab을 하단에 위치하게 해달라는 분들이 계실껍니다.
 
 XML을 이용한 방식에서 Tab을 하단으로 내릴 수 있는데요.
01.<?xml version="1.0" encoding="utf-8"?>
02.<LinearLayout
04.android:layout_width="fill_parent"
05.android:layout_height="fill_parent">
06. 
07.<TabHost android:id="@+id/tabhost"
08.android:layout_width="fill_parent"
09.android:layout_height="fill_parent">
10. 
11.<RelativeLayout
12.android:layout_width="fill_parent"
13.android:layout_height="fill_parent">
14. 
15.<TabWidget android:id="@android:id/tabs" 
16.android:layout_alignParentBottom="true"
17.android:layout_width="fill_parent"
18.android:layout_height="wrap_content"/>
19. 
20.<FrameLayout android:id="@android:id/tabcontent" 
21.android:layout_above="@android:id/tabs"
22.android:layout_width="fill_parent" 
23.android:layout_height="fill_parent"
24.</FrameLayout>
25.</RelativeLayout>
26.</TabHost>
27.</LinearLayout>

와 같이 XML을 정의하시면 TabWidget이 아래로 붙고 그 위에 FramLayout이 올라오게 됩니다.
이젠 Tab을 밑으로 내렸으니... Tab의 이미지를 변경을 해볼까 합니다.

01.//탭에 들어갈 각 View를 선언합니다. 
02.View vTab1 = null;
03.View vTab2 = null;
04.View vTab3 = null;
05.View vTab4 = null;
06.........
07. 
08.//각 View에 layoutinflate를 이용해 Tab에 들어갈 layout을 정합니다. 이미지와 텍스트를 복합적으로 넣을 때
09.//편리하게 이용됩니다.
10.vTab1 = layout.inflate(R.layout.nav, null);
11.vTab2 = layout.inflate(R.layout.nav, null);
12.vTab3 = layout.inflate(R.layout.nav, null);
13.vTab4 = layout.inflate(R.layout.nav, null);
14.........
15. 
16.//이미지를 넣고 싶으시면 위의 layout에 ImageView를 선언한뒤,
17.//findViewById로 ImageView를 불러다 이미지를 셋팅 시킵니다.
18.ImageView test = (ImageView) vTab1.findViewById(R.id.testImage);
19.test.setBackgroundResource(R.drawable.tab_indicator1);
20.test = (ImageView) vTab2.findViewById(R.id.testImage);
21.test.setBackgroundResource(R.drawable.tab_indicator2);
22...........
23. 
24.//해당 View들을 tabHost에 add 할때 setIndicator에 넣습니다.
25.spec = tabHost.newTabSpec(getString(R.string.smartmatch));
26.spec.setContent(new Intent(this, Smartmatch_activity.class));
27.spec.setIndicator(vTab1);
28.tabHost.addTab(spec);


머 고수 분들은 이미 다들 알고 계실 내용이겠지만....
이제 막 접하신 분들은 Tab을 잘 활용하지 못하실 경우도 있을 겁니다...
그래서 간단하게 Tab을 이용한 방법이 이런게 있다는 것을 알려드리기 위해...
미약하나마 몇자 적어보았습니다...
뒤의 내용이나 여러 내용과 중복일 수도 있고 아닐 수도 있습니다.
중복이면 자삭하도록 하지요... ㅎㅎㅎㅎ