//view是否可以拖动
override fun tryCaptureView(child: View, pointerId: Int): Boolean {
return true
}
//水平方向滑动距离Return the magnitude of a draggable child view's horizontal range of motion in pixels.This method should return 0 for views that cannot move vertically.
override fun clampViewPositionHorizontal(child: View, left: Int, dx: Int): Int {
return left
}
//垂直方向的滑动距离Return the magnitude of a draggable child view's vertical range of motion in pixels.This method should return 0 for views that cannot move vertically.
override fun clampViewPositionVertical(child: View, top: Int, dy: Int): Int {
return top
}
//捕获子视图Called when a child view is captured for dragging or settling.
override fun onViewCaptured(capturedChild: View, activePointerId: Int) {
capturedChild.elevation = elevation + 1
capturedLeft = capturedChild.left.toFloat()
capturedTop = capturedChild.top.toFloat()
}
//view位置改变时候Called when the captured view's position changes as the result of a drag or settle.
override fun onViewPositionChanged(changedView: View, left: Int, top: Int, dx: Int, dy: Int) {
}
//拖拽结束Called when the child view is no longer being actively dragged.
override fun onViewReleased(releasedChild: View, xvel: Float, yvel: Float) {
dragHelper.settleCapturedViewAt(capturedLeft.toInt(), capturedTop.toInt())
postInvalidateOnAnimation()
}
ViewDragHelper.CallBack中方法回调
最新推荐文章于 2021-04-15 17:25:11 发布