1)添加库依赖
项目app下build.gradle文件中
dependencies {
compile 'com.github.gb-nick:PagerSlidingTabStrip:v1.0.5'
}
2)layout里加入PagerSlidingTabStrip控件
<com.library.tabstrip.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="40dp" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
3)onCreate方法(或者onCreateView对于一个fragment),绑定PagerSlidingTabStrip
控件到ViewPager上
public class MallActivity extends AppCompatActivity {
private ViewPager viewPager;
private PagerSlidingTabStrip tabs;
ArrayList<Fragment> fragments;
String[] titles = {"礼物","背包","VIP","等级"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mall);
viewPager=findViewById(R.id.viewPager1);
tabs=findViewById(R.id.tabs1);
fragments=new ArrayList<>();
fragments.add(new MallGiftsFragment());
fragments.add(new MallBackPack());
fragments.add(new MallVIPFragment());
fragments.add(new MallGradeFragment());
FragmentManager fragmentManager = getSupportFragmentManager();
viewPager.setAdapter(new MallPagerAdapter(fragmentManager,titles,fragments));
viewPager.setCurrentItem(0);
tabs.setViewPager(viewPager);
tabs.setTextSize(30);
setTabsValue();
}
private void setTabsValue() {
DisplayMetrics dm = getResources().getDisplayMetrics();
// 设置Tab底部选中的指示器Indicator的高度
tabs.setIndicatorHeight(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3f, dm));
// 设置Tab底部选中的指示器 Indicator的颜色
tabs.setIndicatorColorResource(R.color.main_color);
//设置指示器Indicatorin是否跟文本一样宽,默认false
tabs.setIndicatorinFollowerTv(true);
//设置小红点提示,item从0开始计算,true为显示,false为隐藏,默认为全部隐藏
// tabs.setMsgToast(2, true);
//设置红点滑动到当前页面自动消失,默认为true
tabs.setMsgToastPager(true);
//设置Tab标题文字的颜色
tabs.setTextColor(R.color.tip_text_color);
// 设置Tab标题文字的大小
tabs.setTextSize((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 16, dm));
// 设置选中的Tab文字的颜色
tabs.setSelectedTextColorResource(R.color.main_color);
//设置Tab底部分割线的高度
tabs.setUnderlineHeight(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 0f, dm));
//设置Tab底部分割线的颜色
tabs.setUnderlineColorResource(R.color.tip_text_color);
// 设置点击某个Tab时的背景色,设置为0时取消背景色tabs.setTabBackground(0);
// tabs.setTabBackground(R.drawable.bg_tab);
tabs.setTabBackground(0);
// 设置Tab是自动填充满屏幕的
tabs.setShouldExpand(false);
//设置标签是否需要滑动,多个tab文字不够一屏显示的时候使用,后面会改成内部自动判断-----------------------------------------//todo
//必须设置,1.0.0不需要设置这行
// tabs.setTa.setTabsScroll(true);
}
文本适配器:
public class MallPagerAdapter extends FragmentPagerAdapter {
private String[] titles;
ArrayList<Fragment> fragments;
//根据需求定义构造方法,方便外部调用
public MallPagerAdapter(FragmentManager fm, String[] titles, ArrayList<Fragment> fragments) {
super(fm);
this.titles = titles;
this.fragments = fragments;
}
//设置每页的标题
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
//设置每一页对应的fragment
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
//fragment的数量
@Override
public int getCount() {
return fragments.size();
}
}