[英]Android stop drag out of screen from center point of View
有沒有一種方法可以使用onTouch move事件阻止視圖的中心點拖離屏幕?
我可以檢測到該點,但是我需要邏輯來停止視圖移動,然后在用戶向后滑動時重新加入拖動。 設置布爾值將禁用移動事件,這是不好的,並且將視圖設置回已知的好點是不可靠的。
對此沒有任何答案,所以我想知道是否有可能...
您可以使用它來使視圖限於屏幕邊界。
int width=v.getLayoutParams().width;;
int height=v.getLayoutParams().height;
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
dX = v.getX() - event.getRawX();
dY = v.getY() - event.getRawY();
return true;
case MotionEvent.ACTION_MOVE:
if (width == windowWidth && height == windowHeight){}
else {
v.animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
if (event.getRawX() + dX + width > windowWidth) {
v.animate()
.x(windowWidth - width)
.setDuration(0)
.start();
}
if (event.getRawX() + dX < 0) {
v.animate()
.x(0)
.setDuration(0)
.start();
}
if (event.getRawY() + dY + height > windowHeight) {
v.animate()
.y(windowHeight - height)
.setDuration(0)
.start();
}
if (event.getRawY() + dY < 0) {
v.animate()
.y(0)
.setDuration(0)
.start();
}
return true;
}
其中v是onTouchListener中的視圖
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.