2

我有一个包含大约 30 个项目的列表视图。当我向下滚动它时,它只会进入列表的最底部,并且在用户触摸列表时不会停止。

是否有一种方法可以在触摸列表视图时停止滚动,同时用户应该能够使用 onItemClick(已经处理)进行导航。

谢谢!

4

3 回答 3

6

使用smoothScrollBy.

@Override 
public boolean onTouchEvent(MotionEvent ev) 
{ 
    switch (ev.getAction()) 
    {
        case MotionEvent.ACTION_UP:
            this.smoothScrollBy(0, 0); 
            break; 
    } 
    return super.onTouchEvent(ev);
}
于 2013-04-03T08:51:38.810 回答
0

通过参考 Nitin Gupta 的回答,我想出了自己的:

public class OnTouchListenr implements OnTouchListener{

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction()==MotionEvent.ACTION_DOWN)  
        {
            businessResultListView.smoothScrollBy(0, 0); 
            return true;
        }

        return false;
    }          
}

然后我在列表视图上设置 OnTouchListener,如下所示:

businessResultListView.setOnTouchListener(new OnTouchListenr());
于 2013-04-03T09:37:17.193 回答
0

在 Listview 中覆盖dispatchTouchEvent

@Override
public boolean dispatchTouchEvent(MotionEvent ev){
   if(ev.getAction()==MotionEvent.ACTION_MOVE){
      return true;
   }return super.dispatchTouchEvent(ev);
}
于 2016-06-22T10:21:15.330 回答