我有一个 ListView 和一个自定义适配器。

在我的 ListView 中,我设置为:

lv.setOnItemClickListener(...)

一切正常。但是当我开始滚动时却没有。虽然我缓慢向下滚动它是稳定的(称为onItemClick),但是当我更快地向下滚动或快速向下和向上滚动几次时,选择一个项目不会触发事件。但是,如果我稍等片刻或继续单击某个项目或缓慢滚动至顶部,则它会随机运行。

有时,当我单击一个项目时,它会显示黄色背景(并且不会调用onItemClick)。
有时即使我停止触摸后橙色背景仍然停留(并且不会调用onItemClick)。
有时背景根本不会改变(并且不会调用onItemClick)。
有时它会起作用。

列表中的项目由数个textView/imageview/linearlayout(我为每个focusable = false设置,它什么也没改变)组成,并通过 View 持有者进行动态填充。

有人对什么地方有错误的想法还是对它进行调试的想法?

(源代码太大,无法在此处粘贴,如果您愿意,我可以将源代码或apk发送给您)

最佳答案

将此行添加到listview定制行xml文件的父级布局中
android:descendantFocusability =“blocksDescendants”


在充气机(自定义行 View )布局的文本 View 中,只需添加:

android:focusable =“false”
android:focusableInTouchMode =“false”

关于android - ListView onItemClick有时不响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5212608/

10-10 09:26