底部导航栏实现页面的切换(五):TabHost
2017-03-27 15:04
302 查看
这种用法已经过时了,
创建TabSpec,并把它加入TabHost
把TabSpec加入TabHost
设置默认显示第一页
不加监听,也可以切换各activity
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的ViewLayoutInflater 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; } } });
相关文章推荐
- 底部导航栏实现页面的切换(四):消息提示
- 底部导航栏实现页面的切换(三):Fragment + RadioGroup + ViewPager
- FragmentTabHost、Fragment实现底部点击切换Tab页面
- 底部导航栏实现页面的切换(二):Fragment + RadioGroup
- 使用LinearLayout+TextView实现底部导航栏,重复切换页面不会重新加载
- 底部导航栏实现页面的切换(一):Fragment + LinearLayout + TextView
- Android进阶之采用TabHost和RadioButton实现底部页面导航
- Android TabLayout、ViewPager实现顶部和底部Tab导航 点击滑动切换Tab页面
- 【Android基础篇】TabHost实现底部导航栏
- Android FragmentTabHost实现底部tab切换
- Android:简单实现ViewPager+TabHost+TabWidget实现导航栏导航和滑动切换
- ImageView实现APP底部按钮切换页面
- TabHost+ViewPager实现 点击选项卡和滑动界面都可以切换页面
- Android里的底部页面的切换的实现的三种方式
- Android组件TabHost实现页面中多个选项卡切换效果
- FragmentTabHost+Fragment实现底部菜单的切换
- FragmentTabHost、Fragment实现底部点击切换Tab页面
- 使用TabHost和ViewPager实现页面切换
- 三种方式实现Android页面底部导航栏
- TabHost实现底部导航栏