У меня есть 3 макета:
- Основной макет
- 1-й фрагмент (1-й экран View Pager в разделе Main Layout)
- SwipeUpView (раздутый макет при пролистывании вверхaction)
Вопрос в том, как мне закрыть / закрыть макет SwipeUp, когда я щелкаю за его пределами, когда 1-й фрагмент также является интерактивным макетом, который открывает другое действие.
* Примечание: макет SwipeUp занимает только 1/4 экрана, поэтому я могу щелкнуть по нему).
bottomDraggerView.setOnTouchListener(object:View.OnTouchListener
{
override fun onTouch(p0:View ?, p1:MotionEvent ?):Boolean {
when(p1 ?.action)
{
MotionEvent.ACTION_DOWN->{
startPoint = p1.rawY
}
MotionEvent.ACTION_MOVE ->{
val moveY = Math.max(0.0f, p1.rawY + startPoint) + height
swipeUpView.y = moveY
}
MotionEvent.ACTION_UP ->{
val diff = Math.abs(startPoint + p1.rawY)
var finalPosition :Float
if (diff > height / 2) {
finalPosition = 0.0f + 270
} else {
finalPosition = 0.0f - height
}
swipeUpView.animate().y(finalPosition).setDuration(400).start()
Log.d("Swipe", "value " + finalPosition.toString())
}
MotionEvent.ACTION_CANCEL ->{
val diff = Math.abs(startPoint + p1.rawY)
var finalPosition :Float
if (diff > height / 2) {
finalPosition = 0.0f - 400
} else {
finalPosition = 0.0f
}
swipeUpView.animate().y(finalPosition).setDuration(400).start()
}
}
return true
}
})
Что мне нужно, так это то, что если SwipeUpView присутствует или прокручивается, когда ящелкните за ее пределами, он закроется / оживит вниз.