2

此线程类似,我在 ListView 行内的视图的单击响应中存在延迟。

此外,当列表视图之外的视图获得焦点时,单击侦听器会立即触发。

我的问题是,除了完全放弃 ListView 之外,还有其他方法可以解决这个问题,如上面链接中所建议的那样?

4

2 回答 2

0

我遇到了同样的问题,我只是在其他人的帮助下解决了它。

您似乎使用哈希数组来保存 Listview 行,以避免在实现getView()方法时多次膨胀新视图。

但是使用哈希数组会使监听器的状态混乱,因此会导致您描述的问题。

所以删除哈希数组,只在 getView() 方法中返回行视图。

于 2014-11-10T13:29:29.780 回答
0

我有同样的问题。我希望我能帮助你。我通过使用 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;
}
于 2016-09-26T03:25:01.933 回答