Android开发--滑动标签页的实现

本文介绍了如何在Android应用中实现滑动标签页,通常使用FragmentTabHost和ViewPager结合来达到动态效果。通过在FragmentTabHost中展示标题,ViewPager中加载内容,并设置监听器来同步标签页和内容的切换。作者还提到了仿照官方文档,使用TabsAdapter来处理标签页切换的逻辑。
摘要由CSDN通过智能技术生成

         Android应用中滑动标签页被经常使用,一方面可以方便操作,一方面将要显示的内容进行分类从而方便阅读。一般我比较喜欢使用FragmentTabHost与Viewpager结合以实现这种动态效果。主要的思路就是将自己的标题显示在FragmentTabHost中,而将要显示的内容放置在ViewPager中显示,分别对FragmentTabHost和ViewPager设置changeListener,在当前标签页发生变化时调整自己的currentId。

         仿照官方文档中给出的利用ActonBar和ViewPager的例子,我在这边也是用了一个TabsAdapter来完成标签也切换的工作。

	public static class TabsAdapter extends FragmentPagerAdapter implements
			OnPageChangeListener, OnTabChangeListener {

		private final Context mContext;
		private final ViewPager mViewPager;
		private final FragmentTabHost mTabHost;
		private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();

		static final class TabInfo {//我们可以利用一个bundle对象来保存Fragment中的数据
			private final Class<?> clss;
			private final Bundle args;

			TabInfo(Class<?> _class, Bundle _args) {
				clss = _class;
				args = _args;
			}
		}

		public TabsAdapter(FragmentActivity activity, FragmentTabHost tabHost,
				ViewPager pager) {
			super(activity.getSupportFragmentManager());
			mContext = activity;
			mViewPager = pager;
			mTabHost = tabHost;
			mViewPager.setAdapter(this);
			mViewPager.setOnPageChangeListener(this);
			mTabHost.setOnTabChangedListener(this);
		}

		//当TabHost添加标签页后也需要调用此方法以保持和ViewPager的一致
		public void addTab(Class<?> clss, Bundle args) {
			TabInfo info = new TabInfo(clss, args);
			mTabs.add(info);
			notifyDataSetChanged();
		}

		//设置TabHost改变后同时改变ViewPager
		@Override
		public void onTabChanged(String arg0) {
			// TODO Auto-generated method stub
			int position = mTabHost.getCurrentTab();
			mViewP
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值