|
@@ -24,6 +24,7 @@ import com.zhpan.bannerview.annotation.Visibility;
|
|
import com.zhpan.bannerview.constants.PageStyle;
|
|
import com.zhpan.bannerview.constants.PageStyle;
|
|
import com.zhpan.bannerview.manager.BannerManager;
|
|
import com.zhpan.bannerview.manager.BannerManager;
|
|
import com.zhpan.bannerview.manager.BannerOptions;
|
|
import com.zhpan.bannerview.manager.BannerOptions;
|
|
|
|
+import com.zhpan.bannerview.transform.OverlapSliderTransformer;
|
|
import com.zhpan.bannerview.transform.PageTransformerFactory;
|
|
import com.zhpan.bannerview.transform.PageTransformerFactory;
|
|
import com.zhpan.bannerview.transform.ScaleInTransformer;
|
|
import com.zhpan.bannerview.transform.ScaleInTransformer;
|
|
import com.zhpan.bannerview.utils.BannerUtils;
|
|
import com.zhpan.bannerview.utils.BannerUtils;
|
|
@@ -80,6 +81,8 @@ public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayou
|
|
|
|
|
|
private MarginPageTransformer mMarginPageTransformer;
|
|
private MarginPageTransformer mMarginPageTransformer;
|
|
|
|
|
|
|
|
+ private ViewPager2.PageTransformer mPageTransformer;
|
|
|
|
+
|
|
private ViewPager2.OnPageChangeCallback mOnPageChangeCallback = new ViewPager2.OnPageChangeCallback() {
|
|
private ViewPager2.OnPageChangeCallback mOnPageChangeCallback = new ViewPager2.OnPageChangeCallback() {
|
|
@Override
|
|
@Override
|
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
|
@@ -331,10 +334,15 @@ public class BannerViewPager<T, VH extends BaseViewHolder> extends RelativeLayou
|
|
int padding = bannerOptions.getPageMargin() + bannerOptions.getRevealWidth();
|
|
int padding = bannerOptions.getPageMargin() + bannerOptions.getRevealWidth();
|
|
recyclerView.setPadding(padding, 0, padding, 0);
|
|
recyclerView.setPadding(padding, 0, padding, 0);
|
|
recyclerView.setClipToPadding(false);
|
|
recyclerView.setClipToPadding(false);
|
|
- addPageTransformer(new ScaleInTransformer(scale));
|
|
|
|
- if (overlap) {
|
|
|
|
- // TODO MULTI_PAGE_OVERLAP style supported
|
|
|
|
|
|
+ if (mPageTransformer != null) {
|
|
|
|
+ mCompositePageTransformer.removeTransformer(mPageTransformer);
|
|
|
|
+ }
|
|
|
|
+ if (overlap && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
|
|
+ mPageTransformer = new OverlapSliderTransformer(ViewPager2.ORIENTATION_HORIZONTAL, scale, scale, 0, 0);
|
|
|
|
+ } else {
|
|
|
|
+ mPageTransformer = new ScaleInTransformer(scale);
|
|
}
|
|
}
|
|
|
|
+ addPageTransformer(mPageTransformer);
|
|
}
|
|
}
|
|
|
|
|
|
private int getInterval() {
|
|
private int getInterval() {
|