关于ListView中使用GestureDetector冲突的解决办法

来源:互联网 发布:上海极贝网络面试 编辑:程序博客网 时间:2024/05/29 11:51
在做OnGestureListener手势滑动界面的时候,会遇到这样的问题,就是当界面中含有ListView的时候,OnGestureListener的界面滑动就被ListView拦截并消费掉了。
为了解决这个问题需要重写ListView的OnTouchListener接口:
ListView listView=(ListView)findViewById(R.id.listViewBeside);    listView.setOnTouchListener(new View.OnTouchListener(){@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubleftPanel.getGestureDetector().onTouchEvent(event);//需要这样写!return false;}    });      listView.setOnItemClickListener(new ListView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubLog.i("tag", "position=="+position);}});

因为我的手势是定义在leftPanel这个View中的,所以是leftPanel.getGestureDetector().onTouchEvent(event);。如果你的手势是写在Activity中的,那么就是mGestureDetector.onTouchEvent(event);
这样既能保证在ListView上实现拖动,又能保证ListView上的Item Click.
0 0