[go: nahoru, domu]

Merge "Use GlobalVisibleRect for view height...instead of view height." into androidx-master-dev
diff --git a/recyclerview/recyclerview-selection/src/main/java/androidx/recyclerview/selection/ViewAutoScroller.java b/recyclerview/recyclerview-selection/src/main/java/androidx/recyclerview/selection/ViewAutoScroller.java
index 34b43e2..1faf59c 100644
--- a/recyclerview/recyclerview-selection/src/main/java/androidx/recyclerview/selection/ViewAutoScroller.java
+++ b/recyclerview/recyclerview-selection/src/main/java/androidx/recyclerview/selection/ViewAutoScroller.java
@@ -22,6 +22,7 @@
 import static androidx.recyclerview.selection.Shared.VERBOSE;
 
 import android.graphics.Point;
+import android.graphics.Rect;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
@@ -243,31 +244,33 @@
      */
     private static final class RuntimeHost extends ScrollHost {
 
-        private final RecyclerView mRecyclerView;
+        private final RecyclerView mView;
 
-        RuntimeHost(@NonNull RecyclerView recyclerView) {
-            mRecyclerView = recyclerView;
+        RuntimeHost(@NonNull RecyclerView view) {
+            mView = view;
         }
 
         @Override
         void runAtNextFrame(@NonNull Runnable r) {
-            ViewCompat.postOnAnimation(mRecyclerView, r);
+            ViewCompat.postOnAnimation(mView, r);
         }
 
         @Override
         void removeCallback(@NonNull Runnable r) {
-            mRecyclerView.removeCallbacks(r);
+            mView.removeCallbacks(r);
         }
 
         @Override
         void scrollBy(int dy) {
             if (VERBOSE) Log.v(TAG, "Scrolling view by: " + dy);
-            mRecyclerView.scrollBy(0, dy);
+            mView.scrollBy(0, dy);
         }
 
         @Override
         int getViewHeight() {
-            return mRecyclerView.getHeight();
+            Rect r = new Rect();
+            mView.getGlobalVisibleRect(r);
+            return r.height();
         }
     }
 }