Selaa lähdekoodia

Deprecated disallowInterceptTouchEvent,use disallowParentInterceptDownEvent instead.

zhpanvip 4 vuotta sitten
vanhempi
commit
67133d5972

+ 1 - 1
app/src/main/java/com/example/zhpan/banner/fragment/HomeFragment.java

@@ -166,7 +166,7 @@ public class HomeFragment extends BaseFragment {
                 .setInterval(3000)
                 .setIndicatorGravity(IndicatorGravity.END)
                 .setIndicatorSliderRadius(getResources().getDimensionPixelSize(R.dimen.dp_3))
-                .disallowInterceptTouchEvent(true)
+                .disallowParentInterceptDownEvent(true)
                 .setIndicatorView(mIndicatorView)   // 这里为了设置标题故用了自定义Indicator,如果无需标题则没必要添加此行代码
                 .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
                 .setAdapter(new MultiViewTypesAdapter())

+ 1 - 1
app/src/main/java/com/example/zhpan/banner/fragment/PageFragment.java

@@ -98,7 +98,7 @@ public class PageFragment extends BaseFragment {
                 .setPageMargin(getResources().getDimensionPixelOffset(R.dimen.dp_15))
                 .setRevealWidth(getResources().getDimensionPixelOffset(R.dimen.dp_10))
                 .setPageStyle(pageStyle)
-                .create(getPicList(0));
+                .create(getPicList(4));
     }
 
     // 网易云音乐样式

+ 17 - 9
bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

@@ -26,7 +26,6 @@ import com.zhpan.bannerview.constants.PageStyle;
 import com.zhpan.bannerview.manager.BannerManager;
 import com.zhpan.bannerview.manager.BannerOptions;
 import com.zhpan.bannerview.provider.ReflectLayoutManager;
-import com.zhpan.bannerview.provider.ScrollDurationManger;
 import com.zhpan.bannerview.provider.ViewStyleSetter;
 import com.zhpan.bannerview.utils.BannerUtils;
 import com.zhpan.indicator.IndicatorView;
@@ -172,9 +171,8 @@ public class BannerViewPager<T> extends RelativeLayout implements LifecycleObser
             case MotionEvent.ACTION_DOWN:
                 startX = (int) ev.getX();
                 startY = (int) ev.getY();
-                if (!mBannerManager.getBannerOptions().isDisallowIntercept()) {
-                    getParent().requestDisallowInterceptTouchEvent(true);
-                }
+                getParent().requestDisallowInterceptTouchEvent(!mBannerManager
+                        .getBannerOptions().isDisallowParentInterceptDownEvent());
                 break;
             case MotionEvent.ACTION_MOVE:
                 int endX = (int) ev.getX();
@@ -1031,13 +1029,23 @@ public class BannerViewPager<T> extends RelativeLayout implements LifecycleObser
      * 水平滑动,同时BVP外部也是可以水平滑动的ViewPager,则存在较小概率的滑动冲突,即滑动BVP的同时可能会触发
      * 外部ViewPager的滑动。但这一问题到目前为止似乎没有好的解决方案。
      *
-     * @param disallowIntercept 是否允许BVP在{@link MotionEvent#ACTION_DOWN}事件中禁止父View拦截事件,默认值为false
-     *                          true 不允许BVP在{@link MotionEvent#ACTION_DOWN}时间中禁止父View的时间拦截,
-     *                          设置disallowIntercept为true可以解决CoordinatorLayout+CollapsingToolbarLayout的滑动冲突
-     *                          false 允许BVP在{@link MotionEvent#ACTION_DOWN}时间中禁止父View的时间拦截,
+     * @param disallowParentInterceptDownEvent 是否允许BVP在{@link MotionEvent#ACTION_DOWN}事件中禁止父View拦截事件,默认值为false
+     *                                         true 不允许BVP在{@link MotionEvent#ACTION_DOWN}时间中禁止父View的时间拦截,
+     *                                         设置disallowIntercept为true可以解决CoordinatorLayout+CollapsingToolbarLayout的滑动冲突
+     *                                         false 允许BVP在{@link MotionEvent#ACTION_DOWN}时间中禁止父View的时间拦截,
+     */
+
+    public BannerViewPager<T> disallowParentInterceptDownEvent(boolean disallowParentInterceptDownEvent) {
+        mBannerManager.getBannerOptions().setDisallowParentInterceptDownEvent(disallowParentInterceptDownEvent);
+        return this;
+    }
+
+    /**
+     * @deprecated Use {@link BannerViewPager#disallowParentInterceptDownEvent(boolean)} instead.
      */
+    @Deprecated
     public BannerViewPager<T> disallowInterceptTouchEvent(boolean disallowIntercept) {
-        mBannerManager.getBannerOptions().setDisallowIntercept(disallowIntercept);
+        mBannerManager.getBannerOptions().setDisallowParentInterceptDownEvent(disallowIntercept);
         return this;
     }
 

+ 1 - 1
bannerview/src/main/java/com/zhpan/bannerview/BaseBannerAdapter.java

@@ -19,7 +19,7 @@ import java.util.List;
 public abstract class BaseBannerAdapter<T> extends RecyclerView.Adapter<BaseViewHolder<T>> {
     protected List<T> mList = new ArrayList<>();
     private boolean isCanLoop;
-    public static final int MAX_VALUE = 500;
+    public static final int MAX_VALUE = 1000;
     private BannerViewPager.OnPageClickListener mPageClickListener;
 
     @NonNull

+ 5 - 5
bannerview/src/main/java/com/zhpan/bannerview/manager/BannerOptions.java

@@ -60,7 +60,7 @@ public class BannerOptions {
 
     private int orientation = ViewPager2.ORIENTATION_HORIZONTAL;
 
-    private boolean disallowIntercept;
+    private boolean disallowParentInterceptDownEvent;
 
     private final IndicatorOptions mIndicatorOptions;
 
@@ -251,12 +251,12 @@ public class BannerOptions {
         mIndicatorOptions.setSlideProgress(0);
     }
 
-    public boolean isDisallowIntercept() {
-        return disallowIntercept;
+    public boolean isDisallowParentInterceptDownEvent() {
+        return disallowParentInterceptDownEvent;
     }
 
-    public void setDisallowIntercept(boolean disallowIntercept) {
-        this.disallowIntercept = disallowIntercept;
+    public void setDisallowParentInterceptDownEvent(boolean disallowParentInterceptDownEvent) {
+        this.disallowParentInterceptDownEvent = disallowParentInterceptDownEvent;
     }
 
     public int getOffScreenPageLimit() {