来源于:https://github.com/AndroidKun/XTabLayout
compile 'com.androidkun:XTabLayout:1.1.3'
使用:
public class TabAct extends AppCompatActivity { List<Fragment> fragments = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tablayout); initViewPager(); } private void initViewPager() { List<String> titles = new ArrayList<>(); titles.add("一本"); titles.add("二本"); titles.add("三A"); for (int i = 0; i < titles.size(); i++) { if(i%2==0){ fragments.add(new Fragment2()); }else{ fragments.add(new Fragment1()); } } FragmentAdapter adatper = new FragmentAdapter(getSupportFragmentManager(), fragments, titles); ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager); viewPager.setAdapter(adatper); viewPager.setOffscreenPageLimit(4); //将TabLayout和ViewPager关联起来。 XTabLayout tabLayout = (XTabLayout) findViewById(R.id.xTablayout); tabLayout.setupWithViewPager(viewPager); //给TabLayout设置适配器 tabLayout.setupWithViewPager(viewPager); } } 布局:
<com.androidkun.xtablayout.XTabLayout android:id="@+id/xTablayout" android:layout_width="match_parent" android:layout_height="130px" app:xTabBackgroundColor="#ff0" app:xTabDividerWidthWidthText="true" app:xTabMode="scrollable" app:xTabIndicatorColor="#0f0" app:xTabIndicatorHeight="2dp" app:xTabSelectedTextColor="#f00" app:xTabTextColor="#000" app:xTabTextSize="15sp" app:xTabDisplayNum="4" app:xTabSelectedTextSize="20sp" app:xTabDividerWidth="2dp" app:xTabDividerHeight="15dp" app:xTabDividerColor="#000" app:xTabTextSelectedBold="true" app:xTabTextBold="true"/> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"/>
adapter:
public class FragmentAdapter extends FragmentStatePagerAdapter { private List<Fragment> mFragments; private List<String> mTitles; public FragmentAdapter(FragmentManager fm, List<Fragment> fragments, List<String> titles) { super(fm); mFragments = fragments; mTitles = titles; } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } @Override public CharSequence getPageTitle(int position) { return mTitles.get(position); } }