+ [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(); }