Android ListView OnItemClickListener 与 View OnClickListener 的区别

4
为什么 ListView 中 View 的 OnClickListener 不能响应轨迹球点击,而 ListView 的 OnItemClickListener 却可以响应 ListView 中某个 View 的轨迹球点击?

你在ListView点击事件监听器中使用场景是什么,除了列表项之外? - Roman Nurik
2
我认为我找到了问题所在 - 只要我只有一个OnItemClickListener,而没有为每个视图设置OnClickListener,那么OnItemClickListener会响应触摸和轨迹球事件。谢谢。 - WhiteTigerK
1
理论上,如果你想要"分离"逻辑,你也可以使用OnItemClickListener调用OnClickListener。这样,你可以将"项目点击"逻辑保留在一个方法中,将"一般点击"保留在另一个方法中。虽然不是完美的解决方案,但它本质上就像覆盖该方法并使用超级调用一样。P.S. - 发帖时肯定没看日期。抱歉! - Matt D
你的行布局长什么样子还不太清楚。如果你的行里面没有可点击的视图,那么当 OnItemClickListener 被调用时就会出现设计问题。 - The Dreams Wind
1个回答

0

这是有意设计的。

ListView组件专门构建为以那种方式触发这些事件。我相信它们实际上是在AdapterView抽象类中定义的。其他AdapterView后代(GallerySpinner等)也会表现出相同的行为。

还有一个ONItemLongClick

View.OnClick仅用于具有简单语义的控件,例如只有一种“类型”点击的Button


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接