Skip to content

Commit 3172376

Browse files
committed
增加setCurrentIndex方法
1 parent 451b237 commit 3172376

3 files changed

Lines changed: 52 additions & 6 deletions

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ private void switchCard() {
5858
// 获取当前下标
5959
public int getCurrentIndex();
6060
61+
// 原setCurrentItem请用setCurrentIndex替代
62+
6163
// addOnPageChangeListener和setOnPageChangeListener回调position对应data,但data不能进行增删操作,如果要进行增删,请重新bind
6264
```
6365

@@ -78,7 +80,7 @@ public class A {
7880
## gradle依赖
7981

8082
```
81-
implementation 'com.crazysunj:cardslideview:1.4.1'
83+
implementation 'com.crazysunj:cardslideview:1.4.2'
8284
同时还需要依赖自己的v4包和cardview包
8385
```
8486

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ ext {
2525
userOrg = 'twsunj'
2626
groupId = 'com.crazysunj'
2727
uploadName = 'CardSlideView'
28-
publishVersion = '1.4.1'
28+
publishVersion = '1.4.2'
2929
desc = 'CardSlideView For Android'
3030
website = 'https://github.com/crazysunj/CardSlideView'
3131
licences = ['Apache-2.0']

cardslideview/src/main/java/com/crazysunj/cardslideview/CardViewPager.java

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -294,16 +294,60 @@ public int getCurrentIndex() {
294294
return currentItem % size;
295295
}
296296

297-
@Override
298-
public void setCurrentItem(int item) {
297+
public void setCurrentIndex(int index) {
299298
if (!mIsLoop) {
300-
super.setCurrentItem(item);
299+
super.setCurrentItem(index);
301300
return;
302301
}
303302
final CardPagerAdapter adapter = (CardPagerAdapter) getAdapter();
304303
if (adapter == null) {
305304
throw new NullPointerException("adapter is null");
306305
}
307-
super.setCurrentItem(adapter.getLastItem(item));
306+
super.setCurrentItem(adapter.getLastItem(index));
307+
}
308+
309+
public void setCurrentIndex(int index, boolean smoothScroll) {
310+
if (!mIsLoop) {
311+
// smoothScroll为false的时候滑动间隔过多条目会显示异常,暂时先特殊处理,下同
312+
if (smoothScroll) {
313+
super.setCurrentItem(index, true);
314+
} else {
315+
super.setCurrentItem(getPreIndex(index), false);
316+
super.setCurrentItem(index);
317+
}
318+
return;
319+
}
320+
final CardPagerAdapter adapter = (CardPagerAdapter) getAdapter();
321+
if (adapter == null) {
322+
throw new NullPointerException("adapter is null");
323+
}
324+
if (smoothScroll) {
325+
super.setCurrentItem(adapter.getLastItem(index), true);
326+
} else {
327+
super.setCurrentItem(adapter.getLastItem(getPreIndex(index)), false);
328+
super.setCurrentItem(adapter.getLastItem(index));
329+
}
330+
}
331+
332+
private int getPreIndex(int index) {
333+
return index - 1 < 0 ? size - 1 : index - 1;
334+
}
335+
336+
/**
337+
* 请使用{@link #setCurrentIndex(int)}替代
338+
*/
339+
@Deprecated
340+
@Override
341+
public void setCurrentItem(int item) {
342+
super.setCurrentItem(item);
343+
}
344+
345+
/**
346+
* 请使用{@link #setCurrentIndex(int, boolean)}替代
347+
*/
348+
@Deprecated
349+
@Override
350+
public void setCurrentItem(int item, boolean smoothScroll) {
351+
super.setCurrentItem(item, smoothScroll);
308352
}
309353
}

0 commit comments

Comments
 (0)