2016-08-03 115 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 { 

        } 


     } 
    }); 
相關問題