Selaa lähdekoodia

Optimize BannerViewPager

zhpanvip 5 vuotta sitten
vanhempi
commit
d13fa7103a
1 muutettua tiedostoa jossa 18 lisäystä ja 58 poistoa
  1. 18 58
      bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

+ 18 - 58
bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

@@ -1,6 +1,5 @@
 package com.zhpan.bannerview;
 
-import android.annotation.SuppressLint;
 import android.content.Context;
 import android.os.Build;
 import android.os.Handler;
@@ -115,7 +114,7 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
         startLoop();
     }
 
-    //触碰控件的时候,翻页应该停止,离开的时候如果之前是开启了翻页的话则重新启动翻页
+    //  触碰控件的时候,翻页应该停止,离开的时候如果之前是开启了翻页的话则重新启动翻页
     @Override
     public boolean dispatchTouchEvent(MotionEvent ev) {
         int action = ev.getAction();
@@ -131,30 +130,6 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
         return super.dispatchTouchEvent(ev);
     }
 
-    @SuppressLint("ClickableViewAccessibility")
-    private void setTouchListener() {
-        mViewPager.setOnTouchListener(new OnTouchListener() {
-            @Override
-            public boolean onTouch(View v, MotionEvent event) {
-                int action = event.getAction();
-                switch (action) {
-                    case MotionEvent.ACTION_DOWN:
-                    case MotionEvent.ACTION_MOVE:
-                        BannerViewPager.this.setLooping(true);
-                        BannerViewPager.this.stopLoop();
-                        break;
-                    case MotionEvent.ACTION_UP:
-                    case MotionEvent.ACTION_CANCEL:
-                        BannerViewPager.this.setLooping(false);
-                        BannerViewPager.this.startLoop();
-                    default:
-                        break;
-                }
-                return false;
-            }
-        });
-    }
-
     @Override
     public void onPageSelected(int position) {
         // Optimized For Issue #42
@@ -211,19 +186,6 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
         }
     }
 
-//    private void initList(List<T> list) {
-//        mList.clear();
-//        mList.addAll(list);
-//        mIndicatorView.setPageSize(mList.size());
-//        if (mList.size() > 1) {
-//            setIndicatorValues();
-//        } else if (mIndicatorView != null) {
-//            mIndicatorView.setPageSize(mList.size());
-//        }
-//        setIndicatorValues(list);
-//
-//    }
-
     private void setIndicatorValues(List<T> list) {
         BannerOptions bannerOptions = mBannerManager.bannerOptions();
         bannerOptions.resetIndicatorOptions();
@@ -284,27 +246,25 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
     }
 
     private void setupViewPager(List<T> list) {
-        if (holderCreator != null) {
-            if (list.size() > 0 && isCanLoop()) {
-                currentPosition = MAX_VALUE / 2 - ((MAX_VALUE / 2) % list.size()) + 1;
-            }
-            removeAllViews();
-            mViewPager.setAdapter(getPagerAdapter(list));
-            mViewPager.setCurrentItem(currentPosition);
-            mViewPager.removeOnPageChangeListener(this);
-            mViewPager.addOnPageChangeListener(this);
-            BannerOptions bannerOptions = mBannerManager.bannerOptions();
-            mViewPager.setScrollDuration(bannerOptions.getScrollDuration());
-            mViewPager.disableTouchScroll(bannerOptions.isDisableTouchScroll());
-            mViewPager.setFirstLayout(true);
-            addView(mViewPager);
-            addView(mIndicatorLayout);
-            initPageStyle();
-            startLoop();
-//            setTouchListener();
-        } else {
+        if (holderCreator == null) {
             throw new NullPointerException("You must set HolderCreator for BannerViewPager");
         }
+        if (list.size() > 0 && isCanLoop()) {
+            currentPosition = MAX_VALUE / 2 - ((MAX_VALUE / 2) % list.size()) + 1;
+        }
+        removeAllViews();
+        mViewPager.setAdapter(getPagerAdapter(list));
+        mViewPager.setCurrentItem(currentPosition);
+        mViewPager.removeOnPageChangeListener(this);
+        mViewPager.addOnPageChangeListener(this);
+        BannerOptions bannerOptions = mBannerManager.bannerOptions();
+        mViewPager.setScrollDuration(bannerOptions.getScrollDuration());
+        mViewPager.disableTouchScroll(bannerOptions.isDisableTouchScroll());
+        mViewPager.setFirstLayout(true);
+        addView(mViewPager);
+        addView(mIndicatorLayout);
+        initPageStyle();
+        startLoop();
     }
 
     private BannerPagerAdapter<T, VH> mBannerPagerAdapter;