与此线程类似,我在 ListView 行内的视图的单击响应中存在延迟。
此外,当列表视图之外的视图获得焦点时,单击侦听器会立即触发。
我的问题是,除了完全放弃 ListView 之外,还有其他方法可以解决这个问题,如上面链接中所建议的那样?
我遇到了同样的问题,我只是在其他人的帮助下解决了它。
您似乎使用哈希数组来保存 Listview 行,以避免在实现getView()方法时多次膨胀新视图。
但是使用哈希数组会使监听器的状态混乱,因此会导致您描述的问题。
所以删除哈希数组,只在 getView() 方法中返回行视图。
我有同样的问题。我希望我能帮助你。我通过使用 OnTouchListener 解决了它,每一行,我设置一个 OnTouchListener,如下所示:
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN)
{
lastTimeTouch = System.currentTimeMillis();
}
else
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
long c = System.currentTimeMillis();
if (c- lastTimeTouch< 2000)
onClick(view);//call your onClick() funtion here
lastTimeTouch = 0;
}
return true;
}