如何检查scrollview/recyclerview是向上还是向下滚动android
问题描述:
我正在开发android应用程序,并在某些活动中使用recyclerview和scrollview。现在,我想在recyclerview/scrollview向上滚动时显示一些布局,并在向下滚动时隐藏布局。 我想要一个函数可以告诉recyclerview/scrollview向上或向下滚动。如何检查scrollview/recyclerview是向上还是向下滚动android
请帮助,如果有人知道如何为recyclerview和scrollview做到这一点。
非常感谢先进的。
答
Try this way:
private static int firstVisibleInListview;
firstVisibleInListview = yourLayoutManager.findFirstVisibleItemPosition();
In your scroll listener:
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
{
super.onScrolled(recyclerView, dx, dy);
int currentFirstVisible = yourLayoutManager.findFirstVisibleItemPosition();
if(currentFirstVisible > firstVisibleInListview)
Log.i("RecyclerView scrolled: ", "scroll up!");
else
Log.i("RecyclerView scrolled: ", "scroll down!");
firstVisibleInListview = currentFirstVisible;
}
+0
如果currentFirstVisible == firstVisibleInListview和out item height是200dp会怎么样。 –
答
此问题
scroll.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
int x = scrollY - oldScrollY;
if (x > 0) {
//scroll up
} else if (x < 0) {
//scroll down
} else {
}
}
});
可以使用OnScrollListener https://developer.android.com/reference/android/support/v7/widget/RecyclerView一个肯定的答案很简单。 OnScrollListener.html –
看看这个:[Android ScrollView,检查当前是否滚动](http://stackoverflow.com/a/28626671/3472667) – Hoven
http://stackoverflow.com/a/33007135/3145960 –