2016-04-26 51 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的方法并作出相应的回应。 –

相关问题