Kotlin: установить максимальное перетаскивание макета - PullRequest
0 голосов
/ 07 января 2019

У меня есть макет, который я могу перетащить «вверх и вниз», чтобы уменьшить размер макета.

Это работает, но как я могу ограничить положение моего макета? Потому что на данный момент вид, который я перетаскиваю, может быть размещен за пределами экрана (пользователь не может перетащить его ...)

Вот мой код:

override fun onTouch(view : View?, event: MotionEvent?): Boolean {
    val Y : Float? = event?.rawY
    when (event?.action?.and(MotionEvent.ACTION_MASK)) {
        MotionEvent.ACTION_DOWN -> {
            val lParams = view?.layoutParams as RelativeLayout.LayoutParams
            _yDelta = (Y?.minus(lParams.bottomMargin))!!.toInt()
        }
        MotionEvent.ACTION_UP -> {
        }
        MotionEvent.ACTION_POINTER_DOWN -> {
        }
        MotionEvent.ACTION_POINTER_UP -> {
        }
        MotionEvent.ACTION_MOVE -> {
            val layoutParams = view?.layoutParams as RelativeLayout.LayoutParams
            layoutParams.bottomMargin = (Y?.minus(_yDelta))!!.toInt()
            layoutParams.topMargin = -layoutParams.bottomMargin
            view.layoutParams = layoutParams
            view.animate().translationY(Y.toFloat() - _yDelta).duration = 0
        }
    }
    root.invalidate()
    return true
}
...