11
在我的應用我試圖捕捉視圖上一扔事件(ScrollView
是準確的,但LinearLayout
嘗試爲好)。安卓:檢測一扔手勢
通過設置斷點,我可以看到MotionEvents
正確地發生,直到onFling()
應該觸發的點。
的事件流程如下:
- 視圖的
onTouchEvent
- 的
OnGestureListener's onDown
- 的
OnGestureListener's onShowPress
- 的
OnGestureListener's onLongPress
我不知所措我如何繼續嘗試調試類似的東西,谷歌搜索不會轉向多了。任何指針?
我還附上應該處理的手勢有關的觀點:
import android.content.Context;
import android.content.Intent;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.widget.ScrollView;
public class GestureScrollView extends ScrollView {
private static int MAJOR_MOVE = 60;
private GestureDetector gd;
public GestureScrollView(final Context context) {
super(context);
gd = new GestureDetector(context,
new GestureDetector.OnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
int dx = (int) (e2.getX() - e1.getX());
if (Math.abs(dx) > MAJOR_MOVE
&& Math.abs(velocityX) > Math.abs(velocityY)) {
if (velocityX < 0) {
Intent intent = new Intent(context, Main.class);
context.startActivity(intent);
}
}
return false;
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gd.onTouchEvent(event);
}
}
感謝您抽出寶貴時間來回答。實際上它比這更復雜。 Android的Event冒泡機制有點奇怪。 什麼解決了這個問題對我來說是越來越的onTouchEvent()總是返回true,像這樣: @覆蓋 公共布爾的onTouchEvent(MotionEvent事件){ gd.onTouchEvent(事件); 返回true; } 並添加一個額外的方法: @覆蓋 公共布爾onInterceptTouchEvent(MotionEvent EV){ \t回gd.onTouchEvent(EV); } 問候。 – javito 2009-12-20 11:16:47
@javito你不能張貼您正確的代碼作爲一個答案,請 - 那種沒有很好地對你的問題記錄 – Elemental 2011-05-31 21:58:08
@javito +1搞清楚這一個一個棘手的情況。它幫助我從我的滾動視圖中竊取活動 – 2011-12-01 21:14:22