You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by so...@apache.org on 2017/06/08 10:46:15 UTC
[3/3] incubator-weex git commit: * [android] parallax multiple
scroller binding
* [android] parallax multiple scroller binding
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/6428fab2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/6428fab2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/6428fab2
Branch: refs/heads/0.13-dev
Commit: 6428fab248b67264a5438cb1c4cf248ab60b8e17
Parents: a283e16
Author: zshshr <zh...@gmail.com>
Authored: Tue Jun 6 10:23:51 2017 +0800
Committer: sospartan <so...@apache.org>
Committed: Thu Jun 8 18:45:41 2017 +0800
----------------------------------------------------------------------
.../com/taobao/weex/common/ICheckBindingScroller.java | 9 +++++++++
.../java/com/taobao/weex/ui/component/WXComponent.java | 11 +++++++++++
.../java/com/taobao/weex/ui/component/WXScroller.java | 9 ++++++++-
.../com/taobao/weex/ui/component/WXVContainer.java | 13 +++++++++++++
.../weex/ui/component/list/BasicListComponent.java | 9 ++++++++-
5 files changed, 49 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6428fab2/android/sdk/src/main/java/com/taobao/weex/common/ICheckBindingScroller.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/ICheckBindingScroller.java b/android/sdk/src/main/java/com/taobao/weex/common/ICheckBindingScroller.java
new file mode 100644
index 0000000..967869d
--- /dev/null
+++ b/android/sdk/src/main/java/com/taobao/weex/common/ICheckBindingScroller.java
@@ -0,0 +1,9 @@
+package com.taobao.weex.common;
+
+/**
+ * Created by zhengshihan on 2017/6/5.
+ */
+
+public interface ICheckBindingScroller {
+ boolean isNeedScroller(String ref,Object option);
+}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6428fab2/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 659cb16..ba12251 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -850,6 +850,17 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
}
}
+ /**
+ * get Scroller components
+ */
+ @Nullable
+ public Scrollable getFirstScroller() {
+ if(this instanceof Scrollable){
+ return (Scrollable)this;
+ }
+ return null;
+ }
+
public WXVContainer getParent() {
return mParent;
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6428fab2/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java
index ca2e174..24e4940 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXScroller.java
@@ -37,6 +37,7 @@ import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.annotation.Component;
import com.taobao.weex.annotation.JSMethod;
import com.taobao.weex.common.Constants;
+import com.taobao.weex.common.ICheckBindingScroller;
import com.taobao.weex.common.OnWXScrollListener;
import com.taobao.weex.common.WXThread;
import com.taobao.weex.dom.WXDomObject;
@@ -397,7 +398,13 @@ public class WXScroller extends WXVContainer<ViewGroup> implements WXScrollViewL
if(listeners!=null && listeners.size()>0){
for (OnWXScrollListener listener : listeners) {
if (listener != null) {
- listener.onScrolled(scrollView, x, y);
+ if(listener instanceof ICheckBindingScroller){
+ if(((ICheckBindingScroller) listener).isNeedScroller(getRef(),null)){
+ listener.onScrolled(scrollView, x, y);
+ }
+ }else {
+ listener.onScrolled(scrollView, x, y);
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6428fab2/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
index 2e75f31..afdad86 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
@@ -126,6 +126,19 @@ public abstract class WXVContainer<T extends ViewGroup> extends WXComponent<T> {
}
+ public Scrollable getFirstScroller(){
+ if(this instanceof Scrollable){
+ return (Scrollable)this;
+ }else{
+ for (int i=0;i<getChildCount();i++){
+ Scrollable scrollable = getChild(i).getFirstScroller();
+ if(scrollable!=null){
+ return scrollable;
+ }
+ }
+ }
+ return null;
+ }
@Override
public void bindData(WXComponent component) {
if(!isLazy()) {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6428fab2/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
index efe9147..0d60fb9 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
@@ -43,6 +43,7 @@ import com.taobao.weex.WXEnvironment;
import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.annotation.JSMethod;
import com.taobao.weex.common.Constants;
+import com.taobao.weex.common.ICheckBindingScroller;
import com.taobao.weex.common.OnWXScrollListener;
import com.taobao.weex.dom.ImmutableDomObject;
import com.taobao.weex.dom.WXDomObject;
@@ -273,7 +274,13 @@ public abstract class BasicListComponent<T extends ViewGroup & ListComponentView
if (listeners != null && listeners.size() > 0) {
for (OnWXScrollListener listener : listeners) {
if (listener != null) {
- listener.onScrolled(recyclerView, dx, dy);
+ if(listener instanceof ICheckBindingScroller){
+ if(((ICheckBindingScroller) listener).isNeedScroller(getRef(),null)){
+ listener.onScrolled(recyclerView, dx, dy);
+ }
+ }else {
+ listener.onScrolled(recyclerView, dx, dy);
+ }
}
}
}