我有一个listview和一个自定义适配器。
在我的列表视图中我设置了这个:
lv.setOnItemClickListener(...)
一切正常。但是当我开始滚动时却没有。当我慢慢向下滚动时它是稳定的(onItemClick被调用),但当我向下滚动更快或向下滚动时&快几次,选择一个项目不会发生事件。但是,如果我稍等一下或继续点击一个项目或慢慢滚动到顶部,它会随机工作。
有时当我点击某个项目时,它会显示黄色背景(而onItemClick不会被调用)。 有时橙色背景会在我停止触摸后停留(并且onItemClick未被调用)。 有时背景根本不会改变(并且onItemClick没有被调用)。 有时候它有效。
列表中的项目由几个textView / imageview / linearlayout(我为每个focusable设置= false,它没有改变)组成,并使用视图持有者动态充气。
有人知道出了什么问题或有想法如何调试吗?
(源代码太大了,不能粘贴在这里,如果你愿意,我可以发给你源代码或apk)
答案 0 :(得分:2)
将此行添加到listview自定义行xml文件的父布局中 android:descendantFocusability =“blocksDescendants”
另外 在您的充气机的文本视图(自定义行视图)布局中添加:
机器人:可聚焦= “假” 机器人:focusableInTouchMode = “假”
答案 1 :(得分:1)
我有类似的问题。我的ListView项目包含一个包含ImageView和TextView的LinearLayout。除了我的布局以下内容:
android:descendantFocusability="blocksDescendants"
以及我的TextView和ImageView的以下内容,如另一个答案所示:
android:focusable="false"
android:focusableInTouchMode="false"
我还将此添加到我的ImageView:
android:clickable="false"