feat(android): support set custom ViewPagerPageChangeListener

This commit is contained in:
maxli
2023-03-06 11:46:05 +08:00
committed by Zoom Chan
parent 62476dba6d
commit 4fa5f9d979
2 changed files with 12 additions and 16 deletions
@@ -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;
}
@@ -53,7 +53,7 @@ public class HippyViewPagerController extends HippyViewController<HippyViewPager
@Override
protected View createViewImpl(Context context) {
return new HippyViewPager(context);
return new HippyViewPager(context, false, null);
}
@Override
@@ -66,7 +66,7 @@ public class HippyViewPagerController extends HippyViewController<HippyViewPager
isVertical = true;
}
}
return new HippyViewPager(context, isVertical);
return new HippyViewPager(context, isVertical, null);
}
@Override