PagerSlidingTabStrip应用


今天要做一个导航栏横滚+viewpager的页面,想了N种方法都好麻烦,然后就找到了这个类,真的很简单很方便,下面贴具体代码


上代码



    android:layout_below="@+id/iv_title"
    android:id="@+id/tabs"
    android:textColor="@color/gray"
    android:layout_width="match_parent"
    android:layout_height="33dp"
    android:background="@color/white" />

    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/vp_main">
 


  private void initView() {
        //init viewpager
        tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);

        PagerModelManager factory = new PagerModelManager();
        factory.addCommonFragment(fragment集合, 标题集合);

        madapter = new ModelPagerAdapter(this.getSupportFragmentManager(), factory);
        viewPager.setAdapter(madapter);
        viewPager.setCurrentItem(0);
        viewPager.setOffscreenPageLimit(4);
        viewPager.setOnPageChangeListener(this);

        //关联
        tabs.setViewPager(viewPager);
        //字体颜色
        tabs.setTextColor(getResources().getColor(R.color.color_apliy_zhifu));
        //字体大小单位px
        tabs.setTextSize(50);
        //标识器颜色
        tabs.setIndicatorColor(getResources().getColor(R.color.red));
        //标识器高度
        tabs.setIndicatorHeight(5);
        //item分割线颜色
        tabs.setDividerColor(getResources().getColor(R.color.transparent));
        //上一个选中的item中的tv(第一次进入默认为第一个)
        lasttv = (TextView) tabs.getTabsContainer().getChildAt(0);
        if (lasttv != null) {
            //选中的字体颜色变红
            lasttv.setTextColor(getResources().getColor(R.color.red));
        }
        //滚动监听
        tabs.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                //设置上一个tv颜色
                lasttv.setTextColor(getResources().getColor(R.color.color_apliy_zhifu));
                //更新为当前tv
                lasttv = (TextView) tabs.getTabsContainer().getChildAt(position);
                if (lasttv != null) {
                    //更改当前tv颜色
                    lasttv.setTextColor(getResources().getColor(R.color.red));
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }
齐活儿~   真的简单好多~


你可能感兴趣的:(PagerSlidingTabStrip应用)