Android 切换选项卡

xml文件:

   <android.support.design.widget.TabLayout
       android:id="@+id/tabs"
       android:layout_width="match_parent"
       android:layout_height="48dp"
       android:background="#31c016"
       app:tabIndicatorColor="#ffffff"
       app:tabMode="scrollable"
       app:tabPaddingEnd="20dp"
       app:tabPaddingStart="20dp"
       app:tabSelectedTextColor="#FFFFFF"
       app:tabTextColor="#000000">
   </android.support.design.widget.TabLayout>

   <android.support.v4.view.ViewPager
       android:id="@+id/vp_view"
       android:layout_width="match_parent"
       android:layout_height="wrap_content" />

activity:(下面的代码是在fragment写的,一样的)

public class ChatFragment extends Fragment {
	TextView textView1,textView2;
	private TabLayout mTabLayout;
	private ViewPager mViewPager;
	private LayoutInflater mInflater;
	private List<String> mTitleList = new ArrayList<String>();//页卡标题集合
	private View view1, view2, view3, view4;//页卡视图
	private List<View> mViewList = new ArrayList<>();//页卡视图集合



	@Override
	public View onCreateView(LayoutInflater inflater,
			@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
		View view = View.inflate(getContext(), R.layout.fragment_chat, null);

		mViewPager = (ViewPager) view.findViewById(R.id.vp_view);
		mTabLayout = (TabLayout) view.findViewById(R.id.tabs);
		mInflater = LayoutInflater.from(getContext());

		view1 = mInflater.inflate(R.layout.activity_content1, null);
		view2 = mInflater.inflate(R.layout.activity_content2, null);
		view3 = mInflater.inflate(R.layout.activity_content3, null);
		view4 = mInflater.inflate(R.layout.activity_content4, null);

		textView1=(TextView)view1.findViewById(R.id.text1);
		textView2=(TextView)view2.findViewById(R.id.text2);

	
		textView1.setText("");
		textView2.setText("");


		//添加页卡视图
		mViewList.add(view1);
		mViewList.add(view2);
		mViewList.add(view3);
		mViewList.add(view4);
		//添加页卡标题
		mTitleList.add("场地一");
		mTitleList.add("场地二");
		mTitleList.add("场地三");
		mTitleList.add("场地四");

		//添加tab选项卡,默认第一个选中
		mTabLayout.addTab(mTabLayout.newTab().setText(mTitleList.get(0)), true);
		mTabLayout.addTab(mTabLayout.newTab().setText(mTitleList.get(1)));
		mTabLayout.addTab(mTabLayout.newTab().setText(mTitleList.get(2)));
		mTabLayout.addTab(mTabLayout.newTab().setText(mTitleList.get(3)));


		MyPagerAdapter mAdapter = new MyPagerAdapter(mViewList);
		//给ViewPager设置适配器
		mViewPager.setAdapter(mAdapter);

		//将TabLayout和ViewPager关联起来
		mTabLayout.setupWithViewPager(mViewPager);
		//给Tabs设置适配器
		mTabLayout.setTabsFromPagerAdapter(mAdapter);


		return view;


	}




	//ViewPager适配器
	class MyPagerAdapter extends PagerAdapter {
		private List<View> mViewList;

		public MyPagerAdapter(List<View> mViewList) {
			this.mViewList = mViewList;
		}

		@Override
		public int getCount() {
			return mViewList.size();//页卡数
		}

		@Override
		public boolean isViewFromObject(View view, Object object) {
			return view == object;//官方推荐写法
		}

		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			container.addView(mViewList.get(position));//添加页卡
			return mViewList.get(position);
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			container.removeView(mViewList.get(position));//删除页卡
		}

		@Override
		public CharSequence getPageTitle(int position) {
			return mTitleList.get(position);//页卡标题
		}

	}


}

 

在build.gradle中:

compile 'com.android.support:design:26.1.0'

参考:https://www.jianshu.com/p/7ee916e5fae7

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值