浏览代码

Merge pull request #333 from liuzhenli/feature/Rtl-ScaleInTransformer

fix:阿拉伯语言状态时(rtl),scaleInTransformer计算间距问题
ZhangPan 1 年之前
父节点
当前提交
56662d159e

+ 1 - 1
app/src/main/java/com/example/zhpan/banner/transform/PageTransformerFactory.java

@@ -32,7 +32,7 @@ public class PageTransformerFactory {
         transformer = new AccordionTransformer();
         break;
       case SCALE_IN:
-        transformer = new ScaleInTransformer(ScaleInTransformer.DEFAULT_MIN_SCALE);
+        transformer = new ScaleInTransformer(ScaleInTransformer.DEFAULT_MIN_SCALE, false);
         break;
     }
     return transformer;

+ 1 - 1
bannerview/src/main/java/com/zhpan/bannerview/manager/BannerManager.java

@@ -103,7 +103,7 @@ public class BannerManager {
       mDefaultPageTransformer = new OverlapPageTransformer(mBannerOptions
           .getOrientation(), scale, 0f, 1, 0);
     } else {
-      mDefaultPageTransformer = new ScaleInTransformer(scale);
+      mDefaultPageTransformer = new ScaleInTransformer(scale, mBannerOptions.isRtl());
     }
     mCompositePageTransformer.addTransformer(mDefaultPageTransformer);
   }

+ 7 - 1
bannerview/src/main/java/com/zhpan/bannerview/transform/ScaleInTransformer.java

@@ -25,12 +25,18 @@ public class ScaleInTransformer implements ViewPager2.PageTransformer {
   public static final float DEFAULT_MIN_SCALE = 0.85f;
   private final float mMinScale;
 
-  public ScaleInTransformer(float minScale) {
+  private final boolean mIsRtl;
+
+  public ScaleInTransformer(float minScale, boolean isRtl) {
     mMinScale = minScale;
+    mIsRtl = isRtl;
   }
 
   @Override
   public void transformPage(View view, float position) {
+    if (mIsRtl) {
+      position = -position;
+    }
     int pageWidth = view.getWidth();
     int pageHeight = view.getHeight();