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;
   }
 }

Reply via email to