当用户触摸列表时停止在列表视图中滚动 - android

时间:2013-04-03 08:19:28

标签: android android-listview scroll

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

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

谢谢!

3 个答案:

答案 0 :(得分:6)

使用smoothScrollBy

@Override 
public boolean onTouchEvent(MotionEvent ev) 
{ 
    switch (ev.getAction()) 
    {
        case MotionEvent.ACTION_UP:
            this.smoothScrollBy(0, 0); 
            break; 
    } 
    return super.onTouchEvent(ev);
}

答案 1 :(得分: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());

答案 2 :(得分:0)

覆盖Listview中的 dispatchTouchEvent

private void calcPos(double radius) {
            int l = sc.Children.Count;
            double x, y;
            double radians = 90 / (l);
            double alpha = 0.0;
            int current = 1;
            foreach(Image i in sc.Children) {
                alpha = 90 - (radians * current);
                y = radius * Math.Sin((Math.PI / 180) * alpha);
                x = radius * Math.Cos((Math.PI / 180) * alpha);
                x = 300 - x; //Window Size
                y = 300 - y; //Window Size
                i.Margin = new Thickness(x,y,0,0);
                current++;
            }
        }