+ [android] add the 'keep-index' property for slider

Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/7606dc7d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/7606dc7d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/7606dc7d

Branch: refs/heads/0.16-dev
Commit: 7606dc7de79ecb82e589b224a736faccb6467308
Parents: 1215e8f
Author: misakuo <misa...@apache.org>
Authored: Fri Aug 11 14:26:41 2017 +0800
Committer: misakuo <misa...@apache.org>
Committed: Fri Aug 11 14:26:41 2017 +0800

----------------------------------------------------------------------
 .../sdk/src/main/java/com/taobao/weex/common/Constants.java    | 1 +
 .../src/main/java/com/taobao/weex/ui/component/WXSlider.java   | 6 +++++-
 .../java/com/taobao/weex/ui/view/WXBaseCircleIndicator.java    | 3 ++-
 3 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7606dc7d/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java 
b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
index e24ed22..b9abceb 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
@@ -170,6 +170,7 @@ public class Constants {
     String OFFSET = "offset";
     String ANIMATED = "animated";
     String STABLE = "stable";
+    String KEEP_INDEX = "keepIndex";
 
     String INSERT_CELL_ANIMATION = "insertAnimation";
     String DELETE_CELL_ANIMATION = "deleteAnimation";

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7606dc7d/android/sdk/src/main/java/com/taobao/weex/ui/component/WXSlider.java
----------------------------------------------------------------------
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXSlider.java 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXSlider.java
index 8dc5918..4ef51f3 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXSlider.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXSlider.java
@@ -63,6 +63,7 @@ public class WXSlider extends WXVContainer<FrameLayout> {
   Map<String, Object> params = new HashMap<>();
   private float offsetXAccuracy = 0.1f;
   private int initIndex = -1;
+  private boolean keepIndex = false;
 
   public static class Creator implements ComponentCreator {
     public WXComponent createInstance(WXSDKInstance instance, WXDomObject 
node, WXVContainer parent) throws IllegalAccessException, 
InvocationTargetException, InstantiationException {
@@ -188,7 +189,7 @@ public class WXSlider extends WXVContainer<FrameLayout> {
       mViewPager.setCurrentItem(initIndex);
       initIndex = -1;
     } else {
-      if (mViewPager.getCurrentItem() == 0) {
+      if (!keepIndex) {
         mViewPager.setCurrentItem(0);
       }
     }
@@ -291,6 +292,9 @@ public class WXSlider extends WXVContainer<FrameLayout> {
         boolean scrollable = WXUtils.getBoolean(param, true);
         setScrollable(scrollable);
         return true;
+      case Constants.Name.KEEP_INDEX:
+        this.keepIndex = WXUtils.getBoolean(param, false);
+        return true;
     }
     return super.setProperty(key, param);
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7606dc7d/android/sdk/src/main/java/com/taobao/weex/ui/view/WXBaseCircleIndicator.java
----------------------------------------------------------------------
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXBaseCircleIndicator.java 
b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXBaseCircleIndicator.java
index 18b88af..1fdba29 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXBaseCircleIndicator.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXBaseCircleIndicator.java
@@ -123,7 +123,8 @@ public class WXBaseCircleIndicator extends FrameLayout 
implements OnPageChangeLi
   public void setCircleViewPager(WXCircleViewPager mCircleViewPager) {
     this.mCircleViewPager = mCircleViewPager;
     if (this.mCircleViewPager != null) {
-      this.mCircleViewPager.setOnPageChangeListener(this);
+      this.mCircleViewPager.addOnPageChangeListener(this);
+      this.realCurrentItem = mCircleViewPager.getRealCurrentItem();
     }
     requestLayout();
   }

Reply via email to