問題描述:
在activity中實現了一個手勢檢測器detector,用OnGestureListener能檢測到手勢滑動,重寫onFling()方法判斷到從左向右滑動後就finish()這個activity,activity
中重寫的onTouchEvent方法,用手勢檢測器detector處理滑動事件,若這個滑動event符合你重寫的滑動條件,就執行finish。
但是activity中有一個子控件listview,左右滑動的時候就衝突了。但是listview可以上下滑動。
解決方案:
可以讓listview也監聽滑動事件,然後在listview的onTouch()方法中用你寫好的手勢檢測器處理掉listview監聽到的滑動事件event就不會衝突了。
listview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
detector.onTouchEvent(event);
return false;
}
});
在listview的ontouch()方法中用自己定義的手勢先把滑動的event處理掉,就能解決衝突的問題了。activity的父佈局也是在重寫的onTouchEvent方法中用手勢處理了
滑動。