mirror of
https://github.com/szkolny-eu/szkolny-android.git
synced 2025-01-18 04:46:44 -06:00
[UI] Fix closing bottom sheet on scrim view click
This commit is contained in:
parent
8450f6953e
commit
ffee78d4f7
@ -4,6 +4,7 @@ import android.content.Context
|
||||
import android.graphics.PorterDuff
|
||||
import android.graphics.PorterDuffColorFilter
|
||||
import android.util.AttributeSet
|
||||
import android.view.GestureDetector
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
@ -38,7 +39,8 @@ class NavBottomSheet @JvmOverloads constructor(
|
||||
private val list
|
||||
get() = b.bsList
|
||||
|
||||
private var bottomSheetBehavior = BottomSheetBehavior.from<View>(bottomSheet)
|
||||
private val bottomSheetBehavior = BottomSheetBehavior.from<View>(bottomSheet)
|
||||
private val gestureDetector = GestureDetector(context, OnGestureListener())
|
||||
|
||||
private val items = ArrayList<IBottomSheetItem<*>>()
|
||||
private val adapter = BottomSheetAdapter(items)
|
||||
@ -58,10 +60,6 @@ class NavBottomSheet @JvmOverloads constructor(
|
||||
WindowInsetsCompat.CONSUMED
|
||||
}
|
||||
|
||||
scrimView.setOnClickListener {
|
||||
isOpen = false
|
||||
}
|
||||
|
||||
var bottomSheetVisible = false
|
||||
bottomSheetBehavior.addBottomSheetCallback(object :
|
||||
BottomSheetBehavior.BottomSheetCallback() {
|
||||
@ -187,6 +185,8 @@ class NavBottomSheet @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
fun dispatchBottomSheetEvent(view: View, event: MotionEvent): Boolean {
|
||||
if (view == scrimView)
|
||||
gestureDetector.onTouchEvent(event)
|
||||
val location = IntArray(2)
|
||||
bottomSheet.getLocationOnScreen(location)
|
||||
event.setLocation(event.rawX - location[0], event.rawY - location[1])
|
||||
@ -215,4 +215,12 @@ class NavBottomSheet @JvmOverloads constructor(
|
||||
fun toggle() {
|
||||
isOpen = !isOpen
|
||||
}
|
||||
|
||||
|
||||
inner class OnGestureListener : GestureDetector.SimpleOnGestureListener() {
|
||||
override fun onSingleTapUp(e: MotionEvent): Boolean {
|
||||
isOpen = false
|
||||
return super.onSingleTapUp(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,9 @@
|
||||
android:layout_height="match_parent"
|
||||
android:background="#99000000"
|
||||
android:visibility="invisible"
|
||||
android:clickable="true"
|
||||
android:focusable="false"
|
||||
android:focusableInTouchMode="false"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
|
Loading…
x
Reference in New Issue
Block a user