您的位置:首页 > 其它

底部导航栏实现页面的切换(五):TabHost

2017-03-27 15:04 302 查看
这种用法已经过时了,



TabHost
实现选项卡界面有多种方法,这里说最简单的一种

继承ActivityGroup,布局中使用TabHost+TabWidget,调用方法tabHost.setup(getLocalActivityManager())

Demo:http://git.oschina.net/AndroidUI/TabActivity

第一步:xml中适应TabHost+TabWidget

TabHost
下面包裹
TabWidget
+
FrameLayout


<?xml version="1.0" encoding="utf-8"?>
<TabHost android:id="@+id/mytabhost"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">

<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#A39276"
android:gravity="bottom"
android:orientation="horizontal">
</TabWidget>

<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@android:id/tabs"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true">
</FrameLayout>
</RelativeLayout>
</TabHost>


java步骤

填充TabSpec的View

LayoutInflater inflater = LayoutInflater.from(context);
View tab1View = inflater.inflate(R.layout.tab1, null);
View tab2View = inflater.inflate(R.layout.tab2, null);
View tab3View = inflater.inflate(R.layout.tab3, null);


创建TabSpec,并把它加入TabHost

TabHost.TabSpec tab1 = tabHost.newTabSpec("Tab1Tag").setIndicator(tab1View).setContent(new Intent(context, Activity_A.class));
TabHost.TabSpec tab2 = tabHost.newTabSpec("Tab2Tag").setIndicator(tab2View).setContent(new Intent(context, Activity_B.class));
TabHost.TabSpec tab3 = tabHost.newTabSpec("Tab3Tag").setIndicator(tab3View).setContent(new Intent(context, Activity_C.class));


把TabSpec加入TabHost

tabHost.addTab(tab1);
tabHost.addTab(tab2);
tabHost.addTab(tab3);


设置默认显示第一页

tabHost.setCurrentTab(0);


不加监听,也可以切换各activity

tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
@Override
public void onTabChanged(String s) {
switch (s) {
case "Tab1Tag":
Log.d(TAG, "Tab1");
break;
case "Tab2Tag":
Log.d(TAG, "Tab2");
break;
case "Tab3Tag":
Log.d(TAG, "Tab3");
break;
}
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: