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/03/03 03:55:12 UTC
[2/7] incubator-weex git commit: * [android] add recycled attribute
to ViewHold to avoid unusefully bindData
* [android] add recycled attribute to ViewHold to avoid unusefully bindData
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/5525f899
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/5525f899
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/5525f899
Branch: refs/heads/0.11-dev
Commit: 5525f899d7263b805f41d3fc48eb917c7ecf95b9
Parents: 747da07
Author: zshshr <zh...@gmail.com>
Authored: Thu Mar 2 17:13:21 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Thu Mar 2 17:13:21 2017 +0800
----------------------------------------------------------------------
.../ui/component/list/BasicListComponent.java | 7 +-
.../listview/adapter/ListBaseViewHolder.java | 92 +++++++++++++-------
2 files changed, 63 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5525f899/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 9708606..439b748 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
@@ -421,7 +421,7 @@ public abstract class BasicListComponent<T extends ViewGroup & ListComponentView
if (holder != null
&& holder.getComponent() != null
&& !holder.getComponent().isUsing()) {
- holder.getComponent().recycled();
+ holder.recycled();
}
}
recycleViewList.clear();
@@ -855,8 +855,9 @@ public abstract class BasicListComponent<T extends ViewGroup & ListComponentView
}
if (holder.getComponent() != null && holder.getComponent() instanceof WXCell) {
- holder.getComponent().bindData(component);
-// holder.getComponent().refreshData(component);
+ if(holder.isRecycled()) {
+ holder.bindData(component);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5525f899/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/ListBaseViewHolder.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/ListBaseViewHolder.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/ListBaseViewHolder.java
index e78c10a..a689d07 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/ListBaseViewHolder.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/ListBaseViewHolder.java
@@ -208,6 +208,7 @@ import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.taobao.weex.ui.component.WXComponent;
+import com.taobao.weex.utils.WXLogUtils;
import java.lang.ref.WeakReference;
@@ -218,38 +219,63 @@ import java.lang.ref.WeakReference;
* From View to ViewHolder, this is done by set {@link android.view.ViewGroup.LayoutParams} to View.
*/
public class ListBaseViewHolder extends RecyclerView.ViewHolder {
- private int mViewType;
- private WeakReference<WXComponent> mComponent;
-
- public ListBaseViewHolder(WXComponent component, int viewType) {
- super(component.getHostView());
- mViewType = viewType;
- mComponent = new WeakReference(component);
- }
- public ListBaseViewHolder(View view, int viewType) {
- super(view);
- mViewType = viewType;
- }
-
-
- public boolean canRecycled(){
- if (mComponent!=null && mComponent.get() != null) {
- return mComponent.get().canRecycled();
+ private int mViewType;
+
+
+ private boolean isRecycled = true;
+ private WeakReference<WXComponent> mComponent;
+
+ public ListBaseViewHolder(WXComponent component, int viewType) {
+ super(component.getHostView());
+ mViewType = viewType;
+ mComponent = new WeakReference(component);
+ }
+
+ public ListBaseViewHolder(View view, int viewType) {
+ super(view);
+ mViewType = viewType;
+ }
+
+ public boolean isRecycled() {
+ return isRecycled;
+ }
+
+ public void recycled() {
+ if (mComponent != null && mComponent.get() != null) {
+ mComponent.get().recycled();
+ isRecycled = true;
+
+ }
+ }
+
+ public void bindData(WXComponent component) {
+ if (mComponent != null && mComponent.get() != null) {
+ mComponent.get().bindData(component);
+ isRecycled = false;
+ }
+ }
+
+ public boolean canRecycled() {
+ if (mComponent != null && mComponent.get() != null) {
+ return mComponent.get().canRecycled();
+ }
+ return true;
+ }
+
+ public View getView() {
+ return itemView;
+ }
+
+ public int getViewType() {
+ return mViewType;
+ }
+
+ public void setComponentUsing(boolean using) {
+ if (mComponent != null && mComponent.get() != null)
+ mComponent.get().setUsing(using);
+ }
+
+ public WXComponent getComponent() {
+ return mComponent != null ? mComponent.get() : null;
}
- return true;
- }
- public View getView() {
- return itemView;
- }
-
- public int getViewType() {
- return mViewType;
- }
- public void setComponentUsing(boolean using){
- if(mComponent!=null && mComponent.get() != null)
- mComponent.get().setUsing(using);
- }
- public WXComponent getComponent(){
- return mComponent != null ? mComponent.get() : null;
- }
}