Я хочу показать фрагмент карты для действия, которое пользователь может развернуть, прокрутив его вниз. как это:

Я помещаю контейнер фрагментов в CollapsingToolbarLayout
, чтобы свернуть его, и увеличиваю высоту appBarLayout
, когда CoordinatorLayout
прокручиваем вниз до разверните фрагмент.
coordinatorLayout.setOnTouchListener(object : View.OnTouchListener {
override fun onTouch(v: View?, event: MotionEvent?): Boolean {
when (event?.action) {
MotionEvent.ACTION_DOWN -> {
downY = event.y
lastY = downY
return true
}
MotionEvent.ACTION_MOVE -> {
if (lastY == 0f) {
lastY = event.y
return true
}
val deltaY = event.y - lastY
lastY = event.y
val param = appBarLayout.layoutParams
if (deltaY > 0 || param.height > mapMinHeight) {
param.height += deltaY.roundToInt()
appBarLayout.layoutParams = param
}
return true
}
MotionEvent.ACTION_UP -> {
lastY = 0f
expandCollapseMap()
return true
}
}
return false
}
})
, но он запаздывает и имеет плохую производительность. Вы можете предложить лучший способ для этого?