Bootstrap

PagerSlidingTabStrip自定义导航栏

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();
                }
   }

摘自:https://www.jianshu.com/p/ccb4ced85165

;