在我的应用程序中尝试侦听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;
}
});
}
我已尝试过此代码。但它并没有完美运作。
当我向上滚动时,它会在日志中显示&#34;向上滚动&#34;在第一次,然后它显示&#34;向下滚动&#34;。
任何人都可以告诉我它为什么会这样。
提前致谢:)