TabHost三种实现方式
第一种:继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。只要定义具体Tab内容布局就行了.
xml布局:
- <FrameLayout?xmlns:android="http://schemas.android.com/apk/res/android"??
- ????android:layout_width="fill_parent"?android:layout_height="fill_parent"> ??
- ????<LinearLayout?android:id="@+id/widget_layout_Blue"??
- ????????android:layout_width="fill_parent"?android:layout_height="fill_parent"??
- ????????android:orientation="vertical"?> ??
- ????????<EditText?android:id="@+id/widget34"?android:layout_width="fill_parent"??
- ????????????android:layout_height="wrap_content"?android:text="EditText"??
- ????????????android:textSize="18sp"> ??
- ????????</EditText> ??
- ????????<Button?android:id="@+id/widget30"?android:layout_width="wrap_content"??
- ????????????android:layout_height="wrap_content"?android:text="Button"> ??
- ????????</Button> ??
- ????</LinearLayout> ??
- ????<LinearLayout?android:id="@+id/widget_layout_red"??
- ????????android:layout_width="fill_parent"?android:layout_height="fill_parent"??
- ????????android:orientation="vertical"??> ??
- ????????<AnalogClock?android:id="@+id/widget36"??
- ????????????android:layout_width="wrap_content"?android:layout_height="wrap_content"> ??
- ????????</AnalogClock> ??
- ????</LinearLayout>???
- ????<LinearLayout?android:id="@+id/widget_layout_green"??
- ????????android:layout_width="fill_parent"?android:layout_height="fill_parent"??
- ????????android:orientation="vertical"> ??
- ????????<RadioGroup?android:id="@+id/widget43"??
- ????????????android:layout_width="166px"?android:layout_height="98px"??
- ????????????android:orientation="vertical"> ??
- ????????????<RadioButton?android:id="@+id/widget44"??
- ????????????????android:layout_width="wrap_content"?android:layout_height="wrap_content"??
- ????????????????android:text="RadioButton"> ??
- ????????????</RadioButton> ??
- ????????????<RadioButton?android:id="@+id/widget45"??
- ????????????????android:layout_width="wrap_content"?android:layout_height="wrap_content"??
- ????????????????android:text="RadioButton"> ??
- ????????????</RadioButton> ??
- ????????</RadioGroup> ??
- ????</LinearLayout> ??
- </FrameLayout> ??
- ??
- java代码: ??
- super.onCreate(savedInstanceState); ??
- ????????myTabhost=this.getTabHost(); ??
- ????????//get?Tabhost???
- ????????LayoutInflater.from(this).inflate(R.layout.main,?myTabhost.getTabContentView(),?true); ??
- ????????myTabhost.setBackgroundColor(Color.argb(150,?22,?70,?150)); ??
- ???????????
- ????????myTabhost ??
- ????????????????.addTab(myTabhost.newTabSpec("One")//?make?a?new?Tab???
- ????????????????????????.setIndicator("A") ??
- ????????????????????????//?set?the?Title?and?Icon???
- ????????????????????????.setContent(R.id.widget_layout_Blue)); ??
- ????????//?set?the?layout???
- ??
- ????????myTabhost ??
- ????????????????.addTab(myTabhost.newTabSpec("Two")//?make?a?new?Tab???
- ????????????????????????.setIndicator("B", ??
- ????????????????????????????????getResources().getDrawable(R.drawable.mumule)) ??
- ????????????????????????//?set?the?Title?and?Icon???
- ????????????????????????.setContent(R.id.widget_layout_green)); ??
- ????????//?set?the?layout???
- ??
- ????????myTabhost ??
- ????????????????.addTab(myTabhost.newTabSpec("Three")//?make?a?new?Tab???
- ????????????????????????.setIndicator("C", ??
- ????????????????????????????????getResources().getDrawable(R.drawable.notepad)) ??
- ????????????????????????//?set?the?Title?and?Icon???
- ????????????????????????.setContent(R.id.widget_layout_red));
?
第二种:不用继承TabActivity,在布局文件中定义TabHost即可,但是TabWidget的id必须是
@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent。TabHost的id可以自定义.
xml布局:
- <?xml?version="1.0"?encoding="utf-8"?> ??
- <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"?????
- ????android:id="@+id/hometabs"??
- ????android:orientation="vertical"??
- ????android:layout_width="fill_parent"?????
- ????android:layout_height="fill_parent">????
- ????<TabHost?android:id="@+id/tabhost"??
- ????????android:layout_width="wrap_content"??
- ????????android:layout_height="wrap_content"> ??
- ????????<LinearLayout ??
- ????????????android:orientation="vertical"??
- ????????????android:layout_width="fill_parent"??
- ????????????android:layout_height="fill_parent"> ??
- ???????????????
- ????????????<TabWidget?android:id="@android:id/tabs"????
- ??????????????android:orientation="horizontal"??
- ??????????????android:layout_width="wrap_content"??
- ??????????????android:layout_height="wrap_content"> ??
- ????????????</TabWidget> ??
- ????????????
- ?????????????<FrameLayout?android:id="@android:id/tabcontent"??
- ??????????????????android:layout_width="wrap_content"??
- ??????????????????android:layout_height="wrap_content"> ??
- ????????????????????<TextView?android:id="@+id/view1"??
- ????????????????????????android:layout_width="fill_parent"??
- ????????????????????????android:layout_height="fill_parent"/> ??
- ????????????????????<TextView?android:id="@+id/view2"??
- ????????????????????????android:layout_width="fill_parent"??
- ????????????????????????android:layout_height="fill_parent"/> ??
- ????????????????????<TextView?android:id="@+id/view3"??
- ????????????????????????android:layout_width="fill_parent"??
- ????????????????????????android:layout_height="fill_parent"/> ??
- ?????????????</FrameLayout> ??
- ????????????
- ?????????</LinearLayout> ??
- ????</TabHost> ??
- </LinearLayout> ??
- ??
- java代码: ??
- protected?void?onCreate(Bundle?savedInstanceState)?{ ??
- ????????super.onCreate(savedInstanceState); ??
- ????????setContentView(R.layout.hometabs); ??
- ???????????
- ????????TabHost?tabHost?=?(TabHost)?findViewById(R.id.tabhost); ??
- ????????tabHost.setup(); ??
- ????????TabWidget?tabWidget?=?tabHost.getTabWidget(); ??
- ???????????
- ????????tabHost.addTab(tabHost.newTabSpec("tab1") ??
- ????????????????.setIndicator("tab1",?getResources().getDrawable(R.drawable.mumule)) ??
- ????????????????.setContent(R.id.view1)); ??
- ???????????
- ????????tabHost.addTab(tabHost.newTabSpec("tab3") ??
- ????????????????.setIndicator("tab3") ??
- ????????????????.setContent(R.id.view3)); ??
- ???????????
- ????????tabHost.addTab(tabHost.newTabSpec("tab2") ??
- ????????????????.setIndicator("tab2") ??
- ????????????????.setContent(R.id.view2)); ??
- ???????????
- ????????final?int?tabs?=?tabWidget.getChildCount(); ??
- ????????Log.i(TAG,?"***tabWidget.getChildCount()?:?"?+?tabs); ??
- ???????????
- ????????final?int?tabWidth?=?90; ??
- ????????final?int?tabHeight?=?45; ??
- ???????????
- ????????for?(int?i?=?0;?i?<?tabs;?i++)?{ ??
- ??????????
- ????????} ??
- ????}??