# PagerSlidingTabStrip **Repository Path**: wangweijun123/PagerSlidingTabStrip ## Basic Information - **Project Name**: PagerSlidingTabStrip - **Description**: Android-导航栏特效,新闻类APP(仿iOS 版的网易,今日头条效果),主要是导航栏字体大小和颜色的渐变特效 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-14 - **Last Updated**: 2021-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PagerSlidingTabStrip Android-导航栏特效,主要是导航栏字体大小和颜色的渐变特效 可以是固定的几个,可也可以是水平滚动 #原理分析与实现 # 效果图 # 属性 ```java app:pstsIndicatorColor 指示器的颜色 app:pstsIndicatorHeight 指示器的高度 app:pstsUnderlineColor 底部线的颜色 app:pstsUnderlineHeight 底部线的高度 app:pstsDividerColor 分割线的颜色 app:pstsDividerPaddingTopBottom 分割线的上下间距 app:pstsTabPaddingLeftRight 文本的左右间距 app:pstsTextSelectedColor TAB选中的颜色 app:pstsScrollOffset app:pstsTabBackground 每一个TAB的背景 app:pstsShouldExpand app:pstsTextAllCaps 所有的小写英文文本自动大写 ,默认是true,默认大写 app:pstsScaleZoomMax android:textColor="@color/color_45c01a" 正常状态的文字颜色 android:textSize="16sp" 正常状态的文字的大小 app:pstsSmoothScrollWhenClickTab="false" 当点击tab时内容区域Viewpager是否是左右滑动,默认是true ``` # 声明-布局中 ```java ``` # Java 代码 ```java private PagerSlidingTabStrip tabs; tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); ArrayList list=new ArrayList<>(); for (int i=0;i<10;i++){ list.add("TAB "+i); } pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(),list)); tabs.setViewPager(pager); pager.setCurrentItem(1); // 设置Tab是自动填充满屏幕的 tabs.setShouldExpand(true); // 设置Tab的分割线的颜色 tabs.setDividerColor(getResources().getColor(R.color.color_80cbc4)); // 设置分割线的上下的间距,传入的是dp tabs.setDividerPaddingTopBottom(12); // 设置Tab底部线的高度,传入的是dp tabs.setUnderlineHeight(1); //设置Tab底部线的颜色 tabs.setUnderlineColor(getResources().getColor(R.color.color_1A000000)); // 设置Tab 指示器Indicator的高度,传入的是dp tabs.setIndicatorHeight(4); // 设置Tab Indicator的颜色 tabs.setIndicatorColor(getResources().getColor(R.color.color_45c01a)); // 设置Tab标题文字的大小,传入的是sp tabs.setTextSize(16); // 设置选中Tab文字的颜色 tabs.setSelectedTextColor(getResources().getColor(R.color.color_45c01a)); //设置正常Tab文字的颜色 tabs.setTextColor(getResources().getColor(R.color.color_C231C7)); //设置Tab文字的左右间距,传入的是dp tabs.setTabPaddingLeftRight(24); //设置点击每个Tab时的背景色 tabs.setTabBackground(R.drawable.background_tab); //是否支持动画渐变(颜色渐变和文字大小渐变) tabs.setFadeEnabled(false); // 设置最大缩放,是正常状态的0.3倍 tabs.setZoomMax(0.3F); //这是当点击tab时内容区域Viewpager是否是左右滑动,默认是true tabs.setSmoothScrollWhenClickTab(true); ``` #Maven ```java com.gxz.pagerslidingtabstrip library 1.3.1 jar sources ``` # Gradle ```java dependencies { compile 'com.gxz.pagerslidingtabstrip:library:1.3.1' } ``` # 注意 因项目中的library中依赖了两个库 ```java dependencies { compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.nineoldandroids:library:2.4.0' } 使用时有可能这两个依赖有新版本了 你可以这样将library中两个依赖库导出,用法如下,再依赖你自己的最新的库 dependencies { compile('com.gxz.pagerslidingtabstrip:library:1.3') { // exclusion for update the android support jar // for example, you can use the appcompat-v7 in your project exclude group: 'com.android.support', module: 'appcompat-v7' exclude group: 'com.nineoldandroids', module: 'library' } } ``` #V-1.2 FIX-BUG 1.修改点击TAB颜色渐变不全的问题

2.增加:当点击tab时内容区域Viewpager是否是左右滑动,默认是true ```java app:pstsSmoothScrollWhenClickTab="false" 属性 tabs.setSmoothScrollWhenClickTab(true); JAVA方法 ``` #V-1.3 FIX-BUG 1.setTabPaddingLeftRight(int padding) 设置不起作用的问题 #V-1.3.1 加入对title单击和双击的处理监听即OnPagerTitleItemClickListener ```java mPagerSlidingTabStrip.setOnPagerTitleItemClickListener(new PagerSlidingTabStrip.OnPagerTitleItemClickListener() { @Override public void onSingleClickItem(int position) { Toast.makeText(LayoutActivity.this, "单击", Toast.LENGTH_SHORT).show(); } @Override public void onDoubleClickItem(int position) { Toast.makeText(LayoutActivity.this, "双击", Toast.LENGTH_SHORT).show(); } }); ```