diff --git a/recyclerviewfastscroller/src/main/java/com/qtalk/recyclerviewfastscroller/RecyclerViewFastScroller.kt b/recyclerviewfastscroller/src/main/java/com/qtalk/recyclerviewfastscroller/RecyclerViewFastScroller.kt index afd176d..b665875 100644 --- a/recyclerviewfastscroller/src/main/java/com/qtalk/recyclerviewfastscroller/RecyclerViewFastScroller.kt +++ b/recyclerviewfastscroller/src/main/java/com/qtalk/recyclerviewfastscroller/RecyclerViewFastScroller.kt @@ -133,6 +133,7 @@ class RecyclerViewFastScroller @JvmOverloads constructor( const val hasEmptyItemDecorator: Boolean = true const val handleVisibilityDuration: Int = 0 const val trackMargin: Int = 0 + const val disableTrack = false } /** @@ -214,6 +215,7 @@ class RecyclerViewFastScroller @JvmOverloads constructor( field = value refreshHandleImageViewSize() } + var disableTrack: Boolean = Defaults.disableTrack /** * The duration for which the handle should remain visible, defaults to -1 (don't hide) @@ -364,6 +366,9 @@ class RecyclerViewFastScroller @JvmOverloads constructor( Defaults.trackMargin ) + disableTrack = + attribs.getBoolean(R.styleable.RecyclerViewFastScroller_disableTrack, Defaults.disableTrack) + TextViewCompat.setTextAppearance( popupTextView, attribs.getResourceId( @@ -409,6 +414,23 @@ class RecyclerViewFastScroller @JvmOverloads constructor( when (touchAction) { MotionEvent.ACTION_MOVE, MotionEvent.ACTION_DOWN -> { + val handlePosition = IntArray(2).also { + handleImageView.getLocationOnScreen(it) + } + if (disableTrack) { + when (fastScrollDirection) { + FastScrollDirection.HORIZONTAL -> { + val handleRange = handlePosition[0].toFloat() .. handlePosition[0]+handleLength + if (!handleRange.contains(motionEvent.rawX)) + return@OnTouchListener false + } + FastScrollDirection.VERTICAL -> { + val handleRange = handlePosition[1].toFloat() .. handlePosition[1]+handleLength + if (!handleRange.contains(motionEvent.rawY)) + return@OnTouchListener false + } + } + } // disallow parent to spy on touch events requestDisallowInterceptTouchEvent(true) diff --git a/recyclerviewfastscroller/src/main/res/values/attrs.xml b/recyclerviewfastscroller/src/main/res/values/attrs.xml index f69cdcb..f8ddec6 100644 --- a/recyclerviewfastscroller/src/main/res/values/attrs.xml +++ b/recyclerviewfastscroller/src/main/res/values/attrs.xml @@ -19,10 +19,12 @@ - + + + \ No newline at end of file