From b5da326f4404e397f43b491d61af0cf019f4344f Mon Sep 17 00:00:00 2001 From: LuckyJayce <794629068@qq.com> Date: Fri, 2 Sep 2016 18:04:31 +0800 Subject: [PATCH] 1.1.3 --- .idea/misc.xml | 2 +- README.md | 6 +++++- library/build.gradle | 8 ++++---- .../shizhefei/view/indicator/FixedIndicatorView.java | 2 +- .../java/com/shizhefei/view/indicator/Indicator.java | 10 ++++++++++ .../shizhefei/view/indicator/IndicatorViewPager.java | 11 ++++++++--- 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 7e40dfc..3e538b6 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/README.md b/README.md index efa4021..b653940 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ ViewPagerIndicator ###7.导入方式 <1>gradle导入 - compile 'com.shizhefei:ViewPagerIndicator:1.1.2' + compile 'com.shizhefei:ViewPagerIndicator:1.1.3' 由于用到了v4和recyclerview所以也要导入他们 compile 'com.android.support:support-v4:23.4.0' compile 'com.android.support:recyclerview-v7:23.2.1' @@ -221,6 +221,10 @@ Fragment继承该类实现 显示Framgment的时候才会去创建你自己的 有什么建议可以发到我的邮箱 794629068@qq.com ## 版本更新 ## +1.1.3 + + 修复SpringBar点击最后一个tab,第一个tab显示的问题 + IndicatorViewPager添加setClickIndicatorAnim(boolean anim),用于配置点击tab的是否执行viewPager的切换动画 1.1.2 修复LazyFragment 的 onCreateViewLazy(Bundle savedInstanceState) 避免获取不到savedInstanceState diff --git a/library/build.gradle b/library/build.gradle index 4ada9ee..50890c7 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -7,8 +7,8 @@ android { defaultConfig { minSdkVersion 9 targetSdkVersion 23 - versionCode 13 - versionName "1.1.2" + versionCode 14 + versionName "1.1.3" } buildTypes { release { @@ -27,7 +27,7 @@ task buildJar(dependsOn: ['compileReleaseJavaWithJavac'], type: Jar) { appendix = "demo" baseName = "androidJar" - version = "1.1.2" + version = "1.1.3" classifier = "release" //后缀名 extension = "jar" @@ -64,7 +64,7 @@ publish { userOrg = 'luckyjayce'//bintray.com用户名 groupId = 'com.shizhefei'//jcenter上的路径 artifactId = 'ViewPagerIndicator'//项目名称 - publishVersion = '1.1.2'//版本号 + publishVersion = '1.1.3'//版本号 desc = '实现滑动tab,引导页等效果'//描述,不重要 website = 'https://github.com/LuckyJayce/ViewPagerIndicator'//网站,不重要;尽量模拟github上的地址,例如我这样的;当然你有地址最好了 } \ No newline at end of file diff --git a/library/src/main/java/com/shizhefei/view/indicator/FixedIndicatorView.java b/library/src/main/java/com/shizhefei/view/indicator/FixedIndicatorView.java index 880743c..2c61aa0 100644 --- a/library/src/main/java/com/shizhefei/view/indicator/FixedIndicatorView.java +++ b/library/src/main/java/com/shizhefei/view/indicator/FixedIndicatorView.java @@ -411,7 +411,7 @@ private void drawSlideBar(Canvas canvas) { //如果绘制的scrollbar超出了IndicatorView,那么就把超出的部分绘制在最前面,相当于loop的展示,末尾的部分又重新回到最开始的位置 //为了实现这一点,首先要把scrollbar先绘制到cacheBitmap上,然后就可以把分两部分通过canvas绘制到view上 - if (offsetX + scrollBarWidth > indicatorWidth) { + if (mAdapter.isLoop() && offsetX + scrollBarWidth > indicatorWidth) { //创建一个和IndicatorView一样大小的Bitmap用于绘制 if (cacheBitmap == null || cacheBitmap.getWidth() < scrollBarWidth || cacheBitmap.getWidth() < scrollBarHeight) { diff --git a/library/src/main/java/com/shizhefei/view/indicator/Indicator.java b/library/src/main/java/com/shizhefei/view/indicator/Indicator.java index 980233d..bc2f056 100644 --- a/library/src/main/java/com/shizhefei/view/indicator/Indicator.java +++ b/library/src/main/java/com/shizhefei/view/indicator/Indicator.java @@ -116,6 +116,16 @@ public interface Indicator { * 适配器 */ public static abstract class IndicatorAdapter { + private boolean isLoop; + + boolean isLoop() { + return isLoop; + } + + void setIsLoop(boolean isLoop) { + this.isLoop = isLoop; + } + private Set observers = new LinkedHashSet(2); public abstract int getCount(); diff --git a/library/src/main/java/com/shizhefei/view/indicator/IndicatorViewPager.java b/library/src/main/java/com/shizhefei/view/indicator/IndicatorViewPager.java index 308489c..85c5380 100644 --- a/library/src/main/java/com/shizhefei/view/indicator/IndicatorViewPager.java +++ b/library/src/main/java/com/shizhefei/view/indicator/IndicatorViewPager.java @@ -33,11 +33,11 @@ * 将indicatorView,ViewPager联合使用 */ public class IndicatorViewPager { - private final boolean indicatorClickable; protected Indicator indicatorView; protected ViewPager viewPager; private IndicatorPagerAdapter adapter; protected OnIndicatorPageChangeListener onIndicatorPageChangeListener; + private boolean anim = true; public IndicatorViewPager(Indicator indicator, ViewPager viewPager) { this(indicator, viewPager, true); @@ -45,7 +45,6 @@ public IndicatorViewPager(Indicator indicator, ViewPager viewPager) { public IndicatorViewPager(Indicator indicator, ViewPager viewPager, boolean indicatorClickable) { super(); - this.indicatorClickable = indicatorClickable; this.indicatorView = indicator; this.viewPager = viewPager; indicator.setItemClickable(indicatorClickable); @@ -53,6 +52,10 @@ public IndicatorViewPager(Indicator indicator, ViewPager viewPager, boolean indi iniOnPageChangeListener(); } + public void setClickIndicatorAnim(boolean anim) { + this.anim = anim; + } + protected void iniOnItemSelectedListener() { indicatorView.setOnItemSelectListener(new Indicator.OnItemSelectedListener() { @@ -61,7 +64,7 @@ public void onItemSelected(View selectItemView, int select, int preSelect) { if (viewPager instanceof SViewPager) { viewPager.setCurrentItem(select, ((SViewPager) viewPager).isCanScroll()); } else { - viewPager.setCurrentItem(select, true); + viewPager.setCurrentItem(select, anim); } } }); @@ -267,6 +270,7 @@ int getRealPosition(int position) { @Override void setLoop(boolean loop) { this.loop = loop; + indicatorAdapter.setIsLoop(loop); } @@ -379,6 +383,7 @@ int getRealPosition(int position) { @Override void setLoop(boolean loop) { this.loop = loop; + indicatorAdapter.setIsLoop(loop); } public IndicatorFragmentPagerAdapter(FragmentManager fragmentManager) {