[英]MotionEvent.ACTION_UP is not called
我對OnSwipeImageListener
(實現OnTouchListener
)有問題。 我在兩個活動中使用OnSwipeImageListener
。
在ImageView
上的一個活動是OnTouchListener
和OnClickListener
,在ImageView
上的另一活動僅是OnTouchListener
。
如果我改變返回訴onTouchEvent(event)
到true
下MotionEvent.ACTION_DOWN
那么OnClickListener
上的第一個活動不能正常工作,並以這種方式輕掃ImageView
第二活動不起作用。 我進行了一些調試,發現從未調用MotionEvent.ACTION_UP
。
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
dX = event.getX();
dY = event.getY();
return v.onTouchEvent(event);
case MotionEvent.ACTION_UP:
uX = event.getX();
uY = event.getY();
float deltaX = dX - uX;
float deltaY = dY - uY;
// horizontal
if(Math.abs(deltaX) > MIN_DISTANCE) {
//Left to right
if(deltaX < 0) {
this.onLeftToRight();
return v.onTouchEvent(event);
} else if (deltaX > 0) {
this.onRightToLeft();
return v.onTouchEvent(event);
}
else {
//Swipe too short
return v.onTouchEvent(event);
}
}
// vertical
if (Math.abs(deltaY) > MIN_DISTANCE) {
if(deltaY < 0) {
this.onTopToBottom();
return v.onTouchEvent(event);
} else if (deltaY > 0) {
this.onBottomToTop();
return v.onTouchEvent(event);
}
else {
//Swipe too short
return v.onTouchEvent(event);
}
}
}
return v.onTouchEvent(event);
}
如果要獲取ACTION_UP,則應劫持ACTION_DOWN。
當您僅處理ACTION_DOWN時,不返回“ v.onTouchEvent(event)
”,而返回“ true
”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.