今天要做一个导航栏横滚+viewpager的页面,想了N种方法都好麻烦,然后就找到了这个类,真的很简单很方便,下面贴具体代码
上代码
<PagerSlidingTabStrip 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.support.v4.view.ViewPager android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/vp_main"> </android.support.v4.view.ViewPager>
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) { } }); }齐活儿~ 真的简单好多~