【发布时间】:2018-09-10 20:20:35
【问题描述】:
我已经看到了很多关于这个问题的答案,并且也实现了其中一个,但问题是它在开始时没有按预期工作,但过了一段时间它开始正常工作。
这是我的代码。
rvCalender.setOnTouchListener(new View.OnTouchListener() {
float initialY, finalY;
boolean isScrollingUp;
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = MotionEventCompat.getActionMasked(event);
switch(action) {
case (MotionEvent.ACTION_DOWN):
initialY = event.getY();
case (MotionEvent.ACTION_UP):
finalY = event.getY();
if (initialY < finalY) {
Log.d("SCROLLED", "Scrolling up");
isScrollingUp = true;
isScrolledDownward=false;
} else if (initialY > finalY) {
Log.d("SCROLLED", "Scrolling down");
isScrolledDownward= true;
isScrollingUp = false;
}
default:
}
return false;
}
});
所以一旦我开始滚动recyclerview,它会一直返回isScrollDownward false,但是在滚动7-8 个项目后,它开始给我isScrollDownward true,这很好,但我无法理解为什么会这样启动时无法正常工作。
或者这是获取用户滚动方向的正确方法,还是有其他更好的方法可用。
【问题讨论】:
标签: android android-layout listview android-recyclerview