Repository: incubator-weex Updated Branches: refs/heads/0.16-dev 68a3fb2e1 -> 88ae8eb96
* [android] fix the IndexOutOfBoundsException Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/88ae8eb9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/88ae8eb9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/88ae8eb9 Branch: refs/heads/0.16-dev Commit: 88ae8eb9648a4d1217048aaa6d9419dd93bff24f Parents: 68a3fb2 Author: misakuo <misa...@apache.org> Authored: Tue Aug 29 13:08:58 2017 +0800 Committer: misakuo <misa...@apache.org> Committed: Tue Aug 29 13:08:58 2017 +0800 ---------------------------------------------------------------------- .../ui/component/list/BasicListComponent.java | 21 +++++++------------- 1 file changed, 7 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/88ae8eb9/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 7559991..66eb75b 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 @@ -1349,15 +1349,11 @@ public abstract class BasicListComponent<T extends ViewGroup & ListComponentView RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); if (layoutManager instanceof LinearLayoutManager) { int firstVisibleItemPosition = ((LinearLayoutManager) layoutManager).findFirstVisibleItemPosition(); - View firstVisibleView = layoutManager.findViewByPosition(firstVisibleItemPosition); - if (firstVisibleView == null) { - //Why null? - WXComponent firstVisibleComponent = getChild(firstVisibleItemPosition); - if (firstVisibleComponent != null) { - firstVisibleView = firstVisibleComponent.getHostView(); - } + if (firstVisibleItemPosition == -1) { + return 0; } + View firstVisibleView = layoutManager.findViewByPosition(firstVisibleItemPosition); int firstVisibleViewOffset = 0; if (firstVisibleView != null) { firstVisibleViewOffset = firstVisibleView.getTop(); @@ -1381,15 +1377,11 @@ public abstract class BasicListComponent<T extends ViewGroup & ListComponentView } else if (layoutManager instanceof StaggeredGridLayoutManager) { int spanCount = ((StaggeredGridLayoutManager) layoutManager).getSpanCount(); int firstVisibleItemPosition = ((StaggeredGridLayoutManager) layoutManager).findFirstVisibleItemPositions(null)[0]; - View firstVisibleView = layoutManager.findViewByPosition(firstVisibleItemPosition); - - if (firstVisibleView == null) { - WXComponent firstVisibleComponent = getChild(firstVisibleItemPosition); - if (firstVisibleComponent != null) { - firstVisibleView = firstVisibleComponent.getHostView(); - } + if (firstVisibleItemPosition == -1) { + return 0; } + View firstVisibleView = layoutManager.findViewByPosition(firstVisibleItemPosition); int firstVisibleViewOffset = 0; if (firstVisibleView != null) { firstVisibleViewOffset = firstVisibleView.getTop(); @@ -1407,6 +1399,7 @@ public abstract class BasicListComponent<T extends ViewGroup & ListComponentView offset += firstVisibleViewOffset; return offset; } + //Unhandled LayoutManager type return -1; } }