首先到个依赖
TabLayout的依赖
compile 'com.android.support:design:25.0.0'
TabLayout+viewpager
在相对布局或者线性布局中设置属性
xmlns:app="http://schemas.android.com/apk/res-auto" <android.support.design.widget.TabLayout android:id="@+id/tab" android:layout_width="match_parent" android:layout_height="48dp" <!--每个间隔1dp--> android:layout_margin="1dip" <!--颜色--> app:tabIndicatorColor="@android:color/holo_red_dark" app:tabSelectedTextColor="@android:color/holo_red_dark" app:tabTextColor="@android:color/black" /><android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"></android.support.v4.view.ViewPager>//找控件 private void initView(View view) { tab = (TabLayout) view.findViewById(R.id.tab); vp = (ViewPager) view.findViewById(R.id.vp);
//用一个工具类查找集合 ArrayList<Home> getlist = HomeList.getlist(); //TabLayout复制 for (int i = 0; i < getlist.size(); i++) { titles.add(getlist.get(i).getName()); } //创建fragment 给fragment传URL for (int i = 0; i < getlist.size(); i++) { NewsFragment newsFragment1 = new NewsFragment(getlist.get(i).getUrl()); fragments.add(newsFragment1); } //设置tablayout模式 tab.setTabMode(TabLayout.MODE_SCROLLABLE); //添加tab标签 数据源 for (String s : titles) { tab.addTab(tab.newTab().setText(s)); } //创建适配器 MyViewPagerAdapter adapter = new MyViewPagerAdapter(getActivity().getSupportFragmentManager()); vp.setAdapter(adapter); //将tablayout跟viewpager关联 tab.setupWithViewPager(vp); tab.setTabsFromPagerAdapter(adapter); private class MyViewPagerAdapter extends FragmentPagerAdapter { public MyViewPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } //获取page对应的title @Override public CharSequence getPageTitle(int position) { return titles.get(position); } }