Android: TabHost에서 Tab 전환

3919 단어
 TabHost   Tab   ,  TabWidget FrameLayout    ,TabWidget   Tab   ,FrameLayout Tab  。

다음과 같은 두 가지 방법으로 구현할 수 있습니다.
1. TabActivity 계승
2. Activity 클래스 상속
1. TabHost
Activity 클래스를 계승하는 TabHost는 사용자 정의 id를 사용하고findViewById로 TabHost를 가져오며 setup 방법을 호출해야 합니다
TabActivity TabHost를 계승하려면android:id를 @android:id/tabhost를 tabhost = getTabHost ()로 설정해야 합니다.TabHost 2, TabWidget은 android를 설정해야 합니다: id는 @android:id/tabs3, FrameLayout은 android를 설정해야 합니다: id는 @android:id/tabcontent
페이지 레이아웃에 고정된 쓰기
 <TabHost
            android:id="@android:id/tabhost"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TabWidget
                    android:id="@android:id/tabs"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >
                </TabWidget>

                <FrameLayout
                    android:id="@android:id/tabcontent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >

                    <LinearLayout
                        android:id="@+id/ll_comment"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical" >

       
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/ll_thumb_up"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical" >


                    </LinearLayout>
                </FrameLayout>
            </LinearLayout>
        </TabHost>

java 코드:
public class MainActivity  {
private TabHost tabhost;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.demo);
        
     tabhost = (TabHost) view.findViewById(android.R.id.tabhost);
		 tabhost.setup();
		 
		 TabSpec commentSpec = tabhost.newTabSpec("  ");
		 commentSpec.setContent(R.id.ll_comment);
		 commentSpec.setIndicator(createtabWidget(0));
		 tabhost.addTab(commentSpec);
		 
		 TabSpec thumbUpSpec = tabhost.newTabSpec("  ");
		 thumbUpSpec.setContent(R.id.ll_thumb_up);
		 thumbUpSpec.setIndicator(createtabWidget(1));
		 tabhost.addTab(thumbUpSpec);

 tabhost.setCurrentTab(0);
		 updateTab();//    Tab   ,      

		 tabhost.getTabWidget().setStripEnabled(true);
		 tabhost.setOnTabChangedListener(new OnTabChangeListener() {			
			@Override
			public void onTabChanged(String tabId) {
				updateTab();
			}
		});
}
String[] tabWidgetNames = new String[]{"  (123)","  (10)"};
	private View createtabWidget(int pos) {
		TextView view = new TextView(getActivity());
		view.setText(tabWidgetNames[pos]);
		view.setTextColor(Color.GRAY);
		view.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22);
		view.setGravity(Gravity.CENTER);
		return view;
	}

	private void updateTab() {
		for(int i=0,len = tabhost.getTabWidget().getChildCount();i<len;i++){
			TextView textView = (TextView) tabhost.getTabWidget().getChildAt(i);
			if(tabhost.getCurrentTab() == i){
				textView.setTextColor(Color.RED);
			}else{
				textView.setTextColor(Color.GRAY);
			}
		}
	}
}

좋은 웹페이지 즐겨찾기