diff options
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 12 | ||||
| -rw-r--r-- | core/java/android/widget/FastScroller.java | 8 |
2 files changed, 20 insertions, 0 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 4c9a86624468..1937187defed 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -54,6 +54,7 @@ import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; +import android.view.PointerIcon; import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; @@ -4402,6 +4403,17 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } @Override + public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) { + if (mFastScroll != null) { + PointerIcon pointerIcon = mFastScroll.onResolvePointerIcon(event, pointerIndex); + if (pointerIcon != null) { + return pointerIcon; + } + } + return super.onResolvePointerIcon(event, pointerIndex); + } + + @Override public boolean onInterceptTouchEvent(MotionEvent ev) { final int actionMasked = ev.getActionMasked(); View v; diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index 559181bdb823..198bf2722d99 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -38,6 +38,7 @@ import android.util.Property; import android.util.TypedValue; import android.view.Gravity; import android.view.MotionEvent; +import android.view.PointerIcon; import android.view.View; import android.view.View.MeasureSpec; import android.view.ViewConfiguration; @@ -1441,6 +1442,13 @@ class FastScroller { return false; } + public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) { + if (mState == STATE_DRAGGING || isPointInside(event.getX(), event.getY())) { + return PointerIcon.getSystemIcon(mList.getContext(), PointerIcon.TYPE_ARROW); + } + return null; + } + public boolean onTouchEvent(MotionEvent me) { if (!isEnabled()) { return false; |