Fixes to dragging items via a handle on the right side of the screen

This commit is contained in:
Jays2Kings 2022-04-22 16:10:25 -04:00
parent 26ba712409
commit e3311e8ed9
2 changed files with 11 additions and 5 deletions

View file

@ -18,7 +18,7 @@ class MaterialFastScroll @JvmOverloads constructor(context: Context, attrs: Attr
FastScroller(context, attrs) {
var canScroll = false
var startY = 0f
var startY = -1f
var scrollOffset = 0
init {
setViewsToUse(
@ -37,7 +37,12 @@ class MaterialFastScroll @JvmOverloads constructor(context: Context, attrs: Attr
// Overriding to force a distance moved before scrolling
override fun onTouchEvent(event: MotionEvent): Boolean {
if (recyclerView.computeVerticalScrollRange() <= recyclerView.computeVerticalScrollExtent()) {
return super.onTouchEvent(event)
return if (startY > -1f) {
dispatchTouchToRecycler(event)
false
} else {
super.onTouchEvent(event)
}
}
when (event.action) {
@ -80,7 +85,7 @@ class MaterialFastScroll @JvmOverloads constructor(context: Context, attrs: Attr
return true
}
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
startY = 0f
startY = -1f
if (!canScroll) {
dispatchTouchToRecycler(event)
}

View file

@ -27,11 +27,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:paddingHorizontal="10dp"
android:paddingStart="20dp"
android:paddingEnd="10dp"
android:paddingVertical="8dp"
android:scaleType="center"
app:srcCompat="@drawable/ic_drag_handle_24dp"
app:tint="?android:attr/textColorHint"
app:tint="?attr/colorOnBackground"
tools:ignore="ContentDescription" />
</LinearLayout>