2016-08-03 110 views
0

我正在开发android应用程序,并在某些活动中使用recyclerview和scrollview。现在,我想在recyclerview/scrollview向上滚动时显示一些布局,并在向下滚动时隐藏布局。 我想要一个函数可以告诉recyclerview/scrollview向上或向下滚动。如何检查scrollview/recyclerview是向上还是向下滚动android

请帮助,如果有人知道如何为recyclerview和scrollview做到这一点。

非常感谢先进的。

+1

可以使用OnScrollListener https://developer.android.com/reference/android/support/v7/widget/RecyclerView一个肯定的答案很简单。 OnScrollListener.html –

+0

看看这个:[Android ScrollView,检查当前是否滚动](http://stackoverflow.com/a/28626671/3472667) – Hoven

+0

http://stackoverflow.com/a/33007135/3145960 –

回答

2
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会怎么样。 –

0

此问题

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 { 

        } 


     } 
    }); 
相关问题