Skip to content

Commit 33de566

Browse files
committed
Changed PageChangeListener to add/remove
It's the right way to indicate and handle multiple listener
1 parent ab74534 commit 33de566

File tree

4 files changed

+22
-8
lines changed

4 files changed

+22
-8
lines changed

demo/src/main/java/com/daimajia/slider/demo/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ protected void onCreate(Bundle savedInstanceState) {
6666
mDemoSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
6767
mDemoSlider.setCustomAnimation(new DescriptionAnimation());
6868
mDemoSlider.setDuration(4000);
69-
mDemoSlider.setOnPageChangeListener(this);
69+
mDemoSlider.addOnPageChangeListener(this);
7070
ListView l = (ListView)findViewById(R.id.transformers);
7171
l.setAdapter(new TransformerAdapter(this));
7272
l.setOnItemClickListener(new AdapterView.OnItemClickListener() {

library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ public void setViewPager(ViewPagerEx pager){
328328
throw new IllegalStateException("Viewpager does not have adapter instance");
329329
}
330330
mPager = pager;
331-
mPager.setOnPageChangeListener(this);
331+
mPager.addOnPageChangeListener(this);
332332
((InfinitePagerAdapter)mPager.getAdapter()).getRealAdapter().registerDataSetObserver(dataChangeObserver);
333333
}
334334

library/src/main/java/com/daimajia/slider/library/SliderLayout.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,16 @@ public boolean onTouch(View v, MotionEvent event) {
213213
}
214214
}
215215

216-
public void setOnPageChangeListener(ViewPagerEx.OnPageChangeListener onPageChangeListener){
217-
if(onPageChangeListener!=null){
218-
mViewPager.setOnPageChangeListener(onPageChangeListener);
216+
public void addOnPageChangeListener(ViewPagerEx.OnPageChangeListener onPageChangeListener){
217+
if(onPageChangeListener != null){
218+
mViewPager.addOnPageChangeListener(onPageChangeListener);
219219
}
220220
}
221221

222+
public void removeOnPageChangeListener(ViewPagerEx.OnPageChangeListener onPageChangeListener) {
223+
mViewPager.removeOnPageChangeListener(onPageChangeListener);
224+
}
225+
222226
public void setCustomIndicator(PagerIndicator indicator){
223227
if(mIndicator != null){
224228
mIndicator.destroySelf();

library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -589,17 +589,27 @@ private void scrollToItem(int item, boolean smoothScroll, int velocity,
589589
}
590590

591591
/**
592-
* Set a listener that will be invoked whenever the page changes or is incrementally
592+
* Add a listener that will be invoked whenever the page changes or is incrementally
593593
* scrolled. See {@link OnPageChangeListener}.
594594
*
595-
* @param listener Listener to set
595+
* @param listener Listener to add
596596
*/
597-
public void setOnPageChangeListener(OnPageChangeListener listener) {
597+
public void addOnPageChangeListener(OnPageChangeListener listener) {
598598
if (!mOnPageChangeListeners.contains(listener)) {
599599
mOnPageChangeListeners.add(listener);
600600
}
601601
}
602602

603+
/**
604+
* Remove a listener that was added with addOnPageChangeListener
605+
* See {@link OnPageChangeListener}.
606+
*
607+
* @param listener Listener to remove
608+
*/
609+
public void removeOnPageChangeListener(OnPageChangeListener listener) {
610+
mOnPageChangeListeners.remove(listener);
611+
}
612+
603613
/**
604614
* Set a {@link PageTransformer} that will be called for each attached page whenever
605615
* the scroll position is changed. This allows the application to apply custom property

0 commit comments

Comments
 (0)