From 4fa5f9d9798e8fdff85db7f7cc4e5a103adf7f7a Mon Sep 17 00:00:00 2001 From: maxli Date: Mon, 6 Mar 2023 11:03:53 +0800 Subject: [PATCH] feat(android): support set custom ViewPagerPageChangeListener --- .../hippy/views/viewpager/HippyViewPager.java | 24 ++++++++----------- .../viewpager/HippyViewPagerController.java | 4 ++-- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/viewpager/HippyViewPager.java b/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/viewpager/HippyViewPager.java index 366f920f0..9439ae08a 100644 --- a/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/viewpager/HippyViewPager.java +++ b/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/viewpager/HippyViewPager.java @@ -57,18 +57,17 @@ public class HippyViewPager extends ViewPager implements HippyViewBase, ClipChil private final boolean mReNotifyOnAttach = false; private ViewPagerPageChangeListener mPageListener; private final Handler mHandler = new Handler(Looper.getMainLooper()); - @Nullable private Promise mCallBackPromise; + @Nullable + private Promise mCallBackPromise; - private void init(Context context) { + private void init(Context context, @Nullable ViewPagerPageChangeListener listener) { setCallPageChangedOnFirstLayout(true); setEnableReLayoutOnAttachToWindow(false); - - mPageListener = new ViewPagerPageChangeListener(this); - setOnPageChangeListener(mPageListener); setAdapter(createAdapter(context)); setLeftDragOutSizeEnabled(false); setRightDragOutSizeEnabled(false); - + mPageListener = (listener != null) ? listener : new ViewPagerPageChangeListener(this); + setOnPageChangeListener(mPageListener); if (I18nUtil.isRTL()) { setRotationY(180f); } @@ -88,21 +87,18 @@ public class HippyViewPager extends ViewPager implements HippyViewBase, ClipChil super.onViewAdded(child); } - public HippyViewPager(Context context, boolean isVertical) { + public HippyViewPager(Context context, boolean isVertical, + @Nullable ViewPagerPageChangeListener listener) { super(context, isVertical); - init(context); - } - - public HippyViewPager(Context context) { - super(context); - init(context); + init(context, listener); } public void setCallBackPromise(@Nullable Promise promise) { mCallBackPromise = promise; } - public @Nullable Promise getCallBackPromise() { + public @Nullable + Promise getCallBackPromise() { return mCallBackPromise; } diff --git a/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/viewpager/HippyViewPagerController.java b/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/viewpager/HippyViewPagerController.java index 9c4c53fed..3bcd24770 100644 --- a/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/viewpager/HippyViewPagerController.java +++ b/renderer/native/android/src/main/java/com/tencent/mtt/hippy/views/viewpager/HippyViewPagerController.java @@ -53,7 +53,7 @@ public class HippyViewPagerController extends HippyViewController