Repository: incubator-weex Updated Branches: refs/heads/master 7632ecc89 -> b87dc42cd
[WEEX-162][android] When Cell Position Changed , outOfVisibleRange not accurate, item.getCellPositionINScollable() get wrong position, use attachWindow instead close #933, close #931 Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/b87dc42c Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b87dc42c Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b87dc42c Branch: refs/heads/master Commit: b87dc42cdf55e4f75ca543071d6bed888133b91b Parents: 7632ecc Author: jianbai.gbj <jianbai....@alibaba-inc.com> Authored: Wed Dec 6 12:20:32 2017 +0800 Committer: acton393 <zhangxing610...@gmail.com> Committed: Fri Dec 8 14:19:56 2017 +0800 ---------------------------------------------------------------------- .../com/taobao/weex/ui/component/list/BasicListComponent.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b87dc42c/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 79d916a..afaa2e7 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 @@ -28,6 +28,7 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.util.ArrayMap; import android.support.v4.view.MotionEventCompat; +import android.support.v4.view.ViewCompat; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -1166,13 +1167,13 @@ public abstract class BasicListComponent<T extends ViewGroup & ListComponentView continue; } - boolean outOfVisibleRange = item.getCellPositionINScollable() < firstVisible || item.getCellPositionINScollable() > lastVisible; View view = component.getHostView(); if (view == null) { continue; } + boolean outOfVisibleRange = !ViewCompat.isAttachedToWindow(view); boolean visible = (!outOfVisibleRange) && item.isViewVisible(true); int result = item.setAppearStatus(visible);