android studio 中添加依赖
compile 'com.android.support:design:22.2.0'xml布局中
<android.support.design.widget.TabLayout android:id="@+id/tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/green" app:tabIndicatorColor="@color/white" app:tabSelectedTextColor="@color/red" app:tabTextColor="@color/black" /> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" /> 其中,app:tabIndicatorColor="@color/white" //下划线的颜色 app:tabSelectedTextColor="@color/red" //选中条目的字体颜色 app:tabTextColor="@color/black" //不选中的字体颜色Activity中
public class TablayoutActivity extends BaseActivity { private List<String> titleList; private List<Fragment> fragmentList; private TablayoutFragment tablayoutFragment; private FrescoFragment frescoFragment; private PicassoFragment picassoFragment; private SwipeRefeshLayoutFragment swipeRefeshLayoutFragment; private TablayoutFragmentAdapter tablayoutFragmentAdapter; @BindView(R.id.tablayout) TabLayout tablayout; @BindView(R.id.viewpager) ViewPager viewpager; @Override public void setView() { setContentView(R.layout.activity_tablayout); ButterKnife.bind(this); setLeft(); setMid("Tablayout"); } @Override public void init() { titleList = new ArrayList<>(); fragmentList = new ArrayList<>(); titleList.add("Tablayout"); titleList.add("Fresco"); titleList.add("Picasso"); titleList.add("SwipeRefeshLayout"); tablayout.setTabMode(TabLayout.MODE_SCROLLABLE); for (int i = 0; i < titleList.size(); i++) { tablayout.addTab(tablayout.newTab().setText(titleList.get(i))); } tablayoutFragment = new TablayoutFragment(); frescoFragment = new FrescoFragment(); picassoFragment = new PicassoFragment(); swipeRefeshLayoutFragment = new SwipeRefeshLayoutFragment(); fragmentList.add(tablayoutFragment); fragmentList.add(frescoFragment); fragmentList.add(picassoFragment); fragmentList.add(swipeRefeshLayoutFragment); tablayoutFragmentAdapter = new TablayoutFragmentAdapter(getSupportFragmentManager(), fragmentList, titleList); viewpager.setAdapter(tablayoutFragmentAdapter); tablayout.setupWithViewPager(viewpager); } tablayout.setTabMode();设置tablayout的模式,属性值有两种 TabLayout.MODE_SCROLLABLE:tabs很多的时候显示完整,可以滑动 TabLayout.MODE_FIXED:tabs很多的时候显示不完整,全部显示,不能滑动 MODE_FIXED:Fixed tabs display all tabs concurrently and are best used with content that benefits from quick pivots between tabs. MODE_SCROLLABLE:Scrollable tabs display a subset of tabs at any given moment, and can contain longer tab labels and a larger number of tabs.viewpager的adapter
public class TablayoutFragmentAdapter extends FragmentPagerAdapter { private List<Fragment> list; private List<String> stringList; public TablayoutFragmentAdapter(FragmentManager fm, List<Fragment> list, List<String> stringList) { super(fm); this.list = list; this.stringList = stringList; } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } @Override public CharSequence getPageTitle(int position) { return stringList.get(position % stringList.size()); } } public CharSequence getPageTitle(int position) { return stringList.get(position % stringList.size()); } 这个方法是用来显示tabs上的文字的