美文网首页
Android kotlin 自定义拖曳跟随手指移动View

Android kotlin 自定义拖曳跟随手指移动View

作者: 水天滑稽天照八野滑稽石 | 来源:发表于2020-08-03 01:18 被阅读0次

    这个是为了协调布局分遍讲解用的实例

    直接上效果图


    实现代码
    class DownMoveView @JvmOverloads constructor(context: Context,
                                                 attrs: AttributeSet? = null) : View(context, attrs) {
    
        private var lastX = 0f
        private var lastY = 0f
    
        @SuppressLint("ClickableViewAccessibility")
        override fun onTouchEvent(event: MotionEvent): Boolean {
            // 相对于屏幕的位置
            val eventX = event.rawX
            val eventY = event.rawY
            when(event.action){
                MotionEvent.ACTION_MOVE ->{
                    val layoutParams = this.layoutParams as CoordinatorLayout.LayoutParams
                    layoutParams.leftMargin = (layoutParams.leftMargin + eventX - lastX).toInt()
                    layoutParams.topMargin = (layoutParams.topMargin + eventY - lastY).toInt()
                    setLayoutParams(layoutParams)
                }
                else ->{  }
            }
            lastX = eventX
            lastY = eventY
            return true
        }
    }
    

    相关文章

      网友评论

          本文标题:Android kotlin 自定义拖曳跟随手指移动View

          本文链接:https://www.haomeiwen.com/subject/qkzmrktx.html