android notes,Android Notes (ListView Scroller)

private ViewDragHelper.Callback callback = new ViewDragHelper.Callback() {

/**重写tryCaptureView,何时开始检测触摸事件,

* 当前触摸的是MainView时开始检测*/

@Override

public boolean tryCaptureView(View child, int pointerId) {

return mMainView == child;

}

/**水平垂直方向上的滑动,默认返回0,不滑动*/

@Override

public int clampViewPositionHorizontal(View child, int left, int dx) {

// return super.clampViewPositionHorizontal(child, left, dx);

return left;

}

@Override

public int clampViewPositionVertical(View child, int top, int dy) {

// return super.clampViewPositionVertical(child, top, dy);

return top;

}

/**拖动结束后调用,自动滑动打开或关闭菜单*/

@Override

public void onViewReleased(View releasedChild, float xvel, float yvel) {

super.onViewReleased(releasedChild, xvel, yvel);

if (mMainView.getTop() > mHeight / 2) {

mViewDragHelper.smoothSlideViewTo(mMainView, 0, (int) (mHeight * 1.2f));

} else {

if (mMainView.getLeft() < mWidth / 2) {

//关闭菜单

mViewDragHelper.smoothSlideViewTo(mMainView, 0, 0);

} else {

mViewDragHelper.smoothSlideViewTo(mMainView, (int) (mWidth * 1.2f), 0);

}

}

ViewCompat.postInvalidateOnAnimation(ViewDragHelperView.this);

}

/**更改scale进行缩放*/

@Override

public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) {

super.onViewPositionChanged(changedView, left, top, dx, dy);

}

/**状态改变*/

@Override

public void onViewDragStateChanged(int state) {

super.onViewDragStateChanged(state);

}

/**触摸后回调*/

@Override

public void onViewCaptured(View capturedChild, int activePointerId) {

super.onViewCaptured(capturedChild, activePointerId);

}

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值