永发信息网

android viewdraghelper怎么点击

答案:1  悬赏:50  手机版
解决时间 2021-01-16 06:46
  • 提问者网友:火车头
  • 2021-01-15 09:06
android viewdraghelper怎么点击
最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-01-15 10:18
要理解ViewDragHelper,我们需要掌握以下几点:
ViewDragHelper.Callback是连接ViewDragHelper与view之间的桥梁;
ViewDragHelper的实例是通过静态工厂方法创建的;
ViewDragHelper可以检测到是否触及到边缘;
ViewDragHelper并不是直接作用于要被拖动的View,而是使其控制的视图容器中的子View可以被拖动,如果要指定某个子view的行为,需要在Callback中实现;
ViewDragHelper的本质其实是分析onInterceptTouchEvent和onTouchEvent的MotionEvent参数,然后根据分析的结果去改变一个容器中被拖动子View的位置。
拖动行为处理 
在DragHelperCallback的回调方法中有很多的方法可以检测View的事件,如常见的clampViewPositionHorizontal、clampViewPositionVertical,并且clampViewPositionHorizontal 和 clampViewPositionVertical必须要重写,因为默认它返回的是0。 
来看clampViewPositionHorizontal的处理。 
在DragHelperCallback中实现clampViewPositionHorizontal方法, 并且返回一个适当的数值就能实现横向拖动效果。
@Override
public int clampViewPositionHorizontal(View child, int left, int dx) {
  Log.d("DragLayout", "clampViewPositionHorizontal " + left + "," + dx);
  final int leftBound = getPaddingLeft();
  final int rightBound = getWidth() - mDragView.getWidth();
  final int newLeft = Math.min(Math.max(left, leftBound), rightBound);
  return newLeft;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯