android listview上下滑动时为什么不触发点击事件

listview.setOnItemClickListener()方法已经重写,但是在滑动时,不会触发这个方法?为什么?滑动时也是点点击了单个条目的?... listview.setOnItemClickListener()方法已经重写,但是在滑动时,不会触发这个方法?为什么?滑动时也是点点击了单个条目的? 展开
 我来答
gaogaf
2012-01-31 · TA获得超过1289个赞
知道小有建树答主
回答量:610
采纳率:0%
帮助的人:363万
展开全部
所谓点击需要有一个按下和抬起的动作,如果区分短按和长按,则以抬起时相对于按下时的时间来区分。
同样的,滑动时,移动先于抬起,此时就不再触发点击事件了。
追问
也就是说,滑动的监听先于点击事件监听被捕捉到!对吧,明白了!
追答
嗯。
Tommy讲电影
2012-02-06
知道答主
回答量:4
采纳率:0%
帮助的人:5.9万
展开全部
setOnItemClickListener() 触发的机制是, 手指点击时会产生触屏事件的 ACTION_DOWN, 这会根据xy坐标判断是哪个Item被点击, 手指提起时会触发ACTION_UP事件, 这样才是真正完成了整个点击的过程,从触发了setOnItemClickListener事件 ; 如果 你点击之后移动了 会触发ACTION_MOVE事件,当手指移动超过一定距离再提起时,就不会再触发setOnItemClickListener 事件。 希望能帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hsjshijiazhuan
2012-01-31 · TA获得超过145个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:76.5万
展开全部
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 | 六级 ” 说的很有道理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式