android listview上下滑动时为什么不触发点击事件
listview.setOnItemClickListener()方法已经重写,但是在滑动时,不会触发这个方法?为什么?滑动时也是点点击了单个条目的?...
listview.setOnItemClickListener()方法已经重写,但是在滑动时,不会触发这个方法?为什么?滑动时也是点点击了单个条目的?
展开
3个回答
展开全部
setOnItemClickListener() 触发的机制是, 手指点击时会产生触屏事件的 ACTION_DOWN, 这会根据xy坐标判断是哪个Item被点击, 手指提起时会触发ACTION_UP事件, 这样才是真正完成了整个点击的过程,从触发了setOnItemClickListener事件 ; 如果 你点击之后移动了 会触发ACTION_MOVE事件,当手指移动超过一定距离再提起时,就不会再触发setOnItemClickListener 事件。 希望能帮到你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
listView.setOnScrollListener(this);
private ListAdapter adapter = new ListAdapter();
listView.setAdapter(adapter);
class ListAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return convertView;
}
}
listView.setOnItemClickListener(new MyListItemClickListener());
class MyListItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2,
long arg3) {
}
}
看到以上代码,你理解了吗???
这些监听里面,拖动是第一位的。然后,点击是第二位的。点击和拖动是有根本区别的。
楼上 “gaogaf | 六级 ” 说的很有道理。
private ListAdapter adapter = new ListAdapter();
listView.setAdapter(adapter);
class ListAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return convertView;
}
}
listView.setOnItemClickListener(new MyListItemClickListener());
class MyListItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2,
long arg3) {
}
}
看到以上代码,你理解了吗???
这些监听里面,拖动是第一位的。然后,点击是第二位的。点击和拖动是有根本区别的。
楼上 “gaogaf | 六级 ” 说的很有道理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询