From bf595cf1bd19b348224a87a24014a7466f9af907 Mon Sep 17 00:00:00 2001 From: yxping Date: Tue, 23 Oct 2018 20:45:03 +0800 Subject: [PATCH] [Android] fix data not bind when non-recyclable item is lazy in list (#1660) --- .../taobao/weex/ui/component/list/BasicListComponent.java | 4 ++-- .../weex/ui/view/listview/adapter/ListBaseViewHolder.java | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) 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 e025c3b850..e377ad9164 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 @@ -968,10 +968,10 @@ public ListBaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (component.getRealView() != null) { return new ListBaseViewHolder(component, viewType); } else { - ((WXCell) component).lazy(false); + component.lazy(false); component.createView(); component.applyLayoutAndEvent(component); - return new ListBaseViewHolder(component, viewType); + return new ListBaseViewHolder(component, viewType, true); } } else if (component instanceof WXBaseRefresh) { return createVHForRefreshComponent(viewType); 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 2419b6ec71..3c332da181 100644 --- 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 @@ -47,6 +47,11 @@ public ListBaseViewHolder(WXComponent component, int viewType) { isRecycled = component.canRecycled(); } + public ListBaseViewHolder(WXComponent component, int viewType, boolean forceBindData) { + this(component, viewType); + isRecycled = isRecycled || forceBindData; + } + public ListBaseViewHolder(View view, int viewType) { super(view); mViewType = viewType;