您的位置:首页 > 其它

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

2017-04-10 18:48 274 查看
在做OnGestureListener手势滑动界面的时候,会遇到这样的问题,就是当界面中含有ListView的时候,OnGestureListener的界面滑动就被ListView拦截并消费掉了。

为了解决这个问题需要重写ListView的OnTouchListener接口:

ListView listView=(ListView)findViewById(R.id.listViewBeside);

listView.setOnTouchListener(new View.OnTouchListener(){

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
leftPanel.getGestureDetector().onTouchEvent(event);//需要这样写!
return false;
}

});

listView.setOnItemClickListener(new ListView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Log.i("tag", "position=="+position);
}
});


因为我的手势是定义在leftPanel这个View中的,所以是leftPanel.getGestureDetector().onTouchEvent(event);。如果你的手势是写在Activity中的,那么就是mGestureDetector.onTouchEvent(event);

这样既能保证在ListView上实现拖动,又能保证ListView上的Item Click.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐