<?xml version="1.0" encoding="utf-8"?> <!--TabHost布局文件--> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/tabhost" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <!--TabWidget中android:id="@android:id/tabs"引用的是系统中的id,这里只有是系统中的id调用setup()方法时系统才能找到对应的组件--> <TabWidget android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@android:id/tabs" /> <!--FrameLayout中@android:id/tabcontent引用的是系统中的id,这里只有是系统中的id调用setup()方法时系统才能找到对应的组件--> <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@android:id/tabcontent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/page1" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="这是第一个标签页" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/page2" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="这是第二个标签页" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/page3" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="这是第三个标签页" /> </LinearLayout> </FrameLayout> </LinearLayout> </TabHost>
public class MainActivity extends Activity { TabHost tabHost; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Debug.startMethodTracing("itcast"); //根据id找到TabHost组件 tabHost = (TabHost) this.findViewById(R.id.tabhost); //调用此方法,系统会根据布局文件(系统中的id)找到TabWidget和FrameLayout组件 tabHost.setup(); TabSpec tabSpec = tabHost.newTabSpec("page1"); //tabSpec.setIndicator("首页", getResources().getDrawable(R.drawable.i1)); tabSpec.setIndicator(createTabView("首页"));//设置自定义的标签 tabSpec.setContent(R.id.page1);//设置标签对应的页面 tabHost.addTab(tabSpec);//添加标签页到TabHost中 tabSpec = tabHost.newTabSpec("page2"); // tabSpec.setIndicator("第二页", getResources().getDrawable(R.drawable.i2)); tabSpec.setIndicator(createTabView("第二页")); tabSpec.setContent(R.id.page2); tabHost.addTab(tabSpec); tabSpec = tabHost.newTabSpec("page3"); //tabSpec.setIndicator("第三页", getResources().getDrawable(R.drawable.i7)); tabSpec.setIndicator(createTabView("第三页")); tabSpec.setContent(R.id.page3); tabHost.addTab(tabSpec); tabHost.setCurrentTab(0); } @Override protected void onDestroy() { Debug.stopMethodTracing(); super.onDestroy(); } private View createTabView(String name) { //View tabView = getLayoutInflater().inflate(R.layout.tab, null); LinearLayout linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.setBackgroundColor(0xFFFFFF); TextView textView = new TextView(this); textView.setText(name); textView.setBackgroundResource(R.drawable.tab_bg); textView.setTextColor(0xFFFFFF); textView.setTextSize(18.0f); textView.setGravity(Gravity.CENTER); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); linearLayout.addView(textView, params); return linearLayout; } }