TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout。TabWidget就是每个tab的标签,FrameLayout则是tab内容。
1、如果我们使用extends TabAcitivty,如同ListActivity,TabHost必须设置为@android:id/tabhost
2、TabWidget必须设置android:id为@android:id/tabs 3、FrameLayout需要设置android:id为@android:id/tabcontent 4、参考这儿:x">http://blog.csdn.net/flowingflying/archive/2011/04/06/6304289.aspx先自定义一个xml文件:
Java代码 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" android:paddingBottom="53px"/> <TabWidget android:id="@android:id/tabs" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="50px" android:visibility="gone" android:layout_weight="0.0"/> <RadioGroup android:gravity="center_vertical" android:orientation="horizontal" android:id="@+id/main_radio" android:background="@drawable/radiogroup_background" android:layout_width="fill_parent" android:layout_height="50dip" android:layout_gravity="bottom"> <RadioButton android:id="@+id/main_index_button" android:layout_marginTop="1.0dip" android:layout_marginRight="5dip" android:text="@string/main_name" android:drawableTop="@drawable/unistall" style="@style/main_tab_bottom" android:background="@drawable/radio_bg"/> <RadioButton android:id="@+id/main_running_button" android:layout_marginTop="1.0dip" android:layout_marginRight="5dip" android:text="@string/run_manager_name" android:drawableTop="@drawable/unistall" style="@style/main_tab_bottom" android:background="@drawable/radio_bg"/> <RadioButton android:id="@+id/main_uninstall_button" android:layout_marginTop="1.0dip" android:text="@string/uninstall_manager_name" android:drawableTop="@drawable/unistall" style="@style/main_tab_bottom" android:background="@drawable/radio_bg"/> </RadioGroup> </LinearLayout> </TabHost>为了让tabHost显示在下方,要将RadioGroup的layout_gravity设置为bottom,再将FrameLayout的layout_weight设置为1,这样就可以将RadioGroup撑到最下方。style="@style/main_tab_bottom"里面定义了样式文件。
接下来就是在activity中初始化并添加tabhost:
Java代码 tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.addTab(Constant.tabHost.newTabSpec("Main") .setIndicator(getString(R.string.main_name),null) .setContent(new Intent(this, Main.class))); tabHost.addTab(Constant.tabHost.newTabSpec("RunManager") .setIndicator(getString(R.string.run_manager_name),null) .setContent(new Intent(this, RunManager.class))); tabHost.addTab(Constant.tabHost.newTabSpec("UninstallManager") .setIndicator(getString(R.string.uninstall_manager_name),null) .setContent(new Intent(this, UninstallManager.class))); 初始化每个RadioButton并为其添加setOnCheck