2010년 4월 26일 월요일

TabWidget에서 Custom Tab 만들기


AndroidLinearLayout 으로 mytabwidget.xml 생성


<xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content">

  android:id="@+id/icon"
  android:src="@drawable/icon"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center" />

  android:id="@+id/text"
  android:text="Caption"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center" />

------------------------------------------

TabHost mTabHost = getTabHost();


// Custom View for TabWidget
LayoutInflater layout = getLayoutInflater();


View vTab1 = layout.inflate( R.layout.mytabwidget, null );
View vTab2 = layout.inflate( R.layout.mytabwidget, null );


ImageView icon = (ImageView) vTab1.findViewById(R.id.icon);
ImageView icon = (ImageView) vTab2.findViewById(R.id.icon);


mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator(vTab1).setContent(intent));
mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator(vTab2).setContent(intent));



위와 같이 LayoutInflater로 View를 생성하고 setIndicator 메소드의 매개변수로 view를 사용하면 기존 안드로이드 탭 모양이 아닌 해당 LayoutInflater로 생성한 View 모양의 tab 화면이 나타난다.


탭을 클릭하여 이미지나 텍스트를 변경하고자 할 때에는 setOnTabChangedListener 를 사용한다.


댓글 없음:

댓글 쓰기