2016-04-26 52 views
3

我使用RecyclerView中的問題列表創建應用程序。在同一個父級佈局中,我在RecyclerView上方有一個靜態TextView,用於顯示一組問題的指令。我想要的是在滾動時特定問題到達RecyclerView的頂部時更改TextView中的文本。我怎樣才能做到這一點?如何在Android中檢測特定項目何時到達RecyclerView的頂部?

+0

通過'達到頂部',你的意思是滾動或問題出現在索引0? –

+0

是的,在滾動。因此,如果問題1 - 假設5是一組具有共同指令的問題,而6-8具有不同的指令,則當項目6到達頂部 –

回答

4

你需要聽取你的RecyclerView的滾動,並獲得第一個項目顯示在屏幕上。

Thanksfully的Android讓我們設置自定義ScrollListener到RecyclerView,並與您的LayoutManager你可以知道哪些項目會首先顯示:

// initialize your RecyclerView and your LayoutManager 
mLinearLayoutManager = new LinearLayoutManager(getContext()); 
mRecyclerView.setLayoutManager(mLinearLayoutManager); 

// set a custom ScrollListner to your RecyclerView 
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      // Get the first visible item 
      int firstVisibleItem = mLayoutManager.findFirstVisibleItemPosition(); 

      //Now you can use this index to manipulate your TextView 

     } 
    }); 

編輯:添加馬特烏斯Gondim間隙約LayoutManager的

+0

時,我希望靜態文本更改爲6-8的指令。我會嘗試Gauthier的方法並作出相應的迴應。 –

相關問題