布局文件mytabactivity.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/tab1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" /> </LinearLayout> <LinearLayout android:id="@+id/tab2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button2" /> </LinearLayout> <LinearLayout android:id="@+id/tab3" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button3" /> </LinearLayout> </LinearLayout>activity类:
package com.zzj.ui; import android.app.TabActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.widget.TabHost; @SuppressWarnings("deprecation") public class MyTabActivity extends TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); init(); } private void init() { TabHost tabHost = getTabHost(); LayoutInflater.from(this).inflate(R.layout.mytabactivity, tabHost.getTabContentView(), true);//关键代码 tabHost.addTab(tabHost.newTabSpec("tag1").setIndicator("tab1").setContent(R.id.tab1)); tabHost.addTab(tabHost.newTabSpec("tag2").setIndicator("tab2").setContent(R.id.tab2)); tabHost.addTab(tabHost.newTabSpec("tag3").setIndicator("tab3").setContent(R.id.tab3)); } }效果:
在布局文件中定义TabHost,但是TabWidget的id必须是
@android:id/tabs,FrameLayout的id必须是@android:id/tabcontent。TabHost的id可以自定义。
布局文件mytabhost.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:baselineAligned="false" android:layout_width="match_parent" android:layout_height="match_parent" > <TabHost android:id="@+id/tabhost" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" 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="match_parent" > <LinearLayout android:id="@+id/mtab1" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/mbutton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" /> </LinearLayout> <LinearLayout android:id="@+id/mtab2" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/mbutton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button2" /> </LinearLayout> <LinearLayout android:id="@+id/mtab3" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/mbutton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button3" /> </LinearLayout> </FrameLayout> </LinearLayout> </TabHost> </LinearLayout>Activity类:
package com.zzj.ui; import android.app.Activity; import android.os.Bundle; import android.widget.TabHost; public class MyTab extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mytabhost); init(); } private void init() { TabHost tabHost = (TabHost) this.findViewById(R.id.tabhost); tabHost.setup();// 关键代码 tabHost.addTab(tabHost .newTabSpec("tag1") .setIndicator("tab1", getResources().getDrawable(R.drawable.toolbar_cost)) .setContent(R.id.mtab1)); tabHost.addTab(tabHost .newTabSpec("tag2") .setIndicator("tab2", getResources().getDrawable(R.drawable.toolbar_count)) .setContent(R.id.mtab2)); tabHost.addTab(tabHost .newTabSpec("tag3") .setIndicator("tab3", getResources().getDrawable(R.drawable.toolbar_discount)) .setContent(R.id.mtab3)); } }效果:
使用不继承TabActivity的方式,只需要修改xml布局文件。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:baselineAligned="false" android:layout_width="match_parent" android:layout_height="match_parent" > <TabHost android:id="@+id/tabhost" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"> </TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:id="@+id/mtab1" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/mbutton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" /> </LinearLayout> <LinearLayout android:id="@+id/mtab2" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/mbutton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button2" /> </LinearLayout> <LinearLayout android:id="@+id/mtab3" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/mbutton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button3" /> </LinearLayout> </FrameLayout> </RelativeLayout> </TabHost> </LinearLayout>
将TabWidget标签的父标签改为RelativeLayout,将TabWidget标签的属性layout_alignParentBottom设置为true。
效果:XML布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:baselineAligned="false" android:layout_width="match_parent" android:layout_height="match_parent" > <TabHost android:id="@android:id/tabhost" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"> </TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:id="@+id/mtab1" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/mbutton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" /> </LinearLayout> <LinearLayout android:id="@+id/mtab2" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/mbutton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button2" /> </LinearLayout> <LinearLayout android:id="@+id/mtab3" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/mbutton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button3" /> </LinearLayout> </FrameLayout> </RelativeLayout> </TabHost> </LinearLayout>注意TabHost的id。
Activity类:
package com.zzj.ui; import android.app.TabActivity; import android.os.Bundle; import android.widget.TabHost; @SuppressWarnings("deprecation") public class TabActivityHost extends TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mytabhost); init(); } private void init() { TabHost tabHost = getTabHost(); tabHost.addTab(tabHost .newTabSpec("tag1") .setIndicator("tab1", getResources().getDrawable(R.drawable.toolbar_cost)) .setContent(R.id.mtab1)); tabHost.addTab(tabHost .newTabSpec("tag2") .setIndicator("tab2", getResources().getDrawable(R.drawable.toolbar_count)) .setContent(R.id.mtab2)); tabHost.addTab(tabHost .newTabSpec("tag3") .setIndicator("tab3", getResources().getDrawable(R.drawable.toolbar_discount)) .setContent(R.id.mtab3)); } }效果: