在我的应用程序中尝试侦听listView滚动运动,无论它是向上还是向下
contactsList.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
view.setOnTouchListener(new View.OnTouchListener() {
private float mInitialX;
private float mInitialY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
mInitialX = event.getX();
mInitialY = event.getY();
return true;
case MotionEvent.ACTION_MOVE:
final float x = event.getX();
final float y = event.getY();
final float yDiff = y - mInitialY;
if (yDiff > 0.0) {
Log.e("Tag ","Scroll down");
break;
} else if (yDiff < 0.0) {
Log.e("Tag ","Scroll up");
break;
}
break;
}
return false;
}
});
}
我试过这个代码。但它并没有完美地工作。
当我向上滚动时,第一次在日志中显示"向上滚动",然后显示"向下滚动"。
谁能告诉我它为什么会这样?
提前感谢:)
尝试这个解决方案,你的问题似乎相似,也许跟踪滚动的方向是足够的你需要的