activity中滑動手勢和listview滑動衝突解決方法

問題描述:

      在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方法中用手勢處理了

滑動。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章