2017-07-27 118 views
0

我提出这是由recyclerView的应用,我已经成功地实现了它,现在我 想要的是,如果我把一个按钮工具栏上的滚动回到在recycleView项目的顶部,当我点击该按钮,我RecyclerView滚到顶级项目第一项这是目前在我的recycleView名单,我已经研究了很多问题,但没有发现任何有用的解决方案对我的问题。请帮助滚动RecycleView在按钮Android的顶部位置单击

我正在使用Android Studio。

和RecyclerView也逆转使用

layout.setReverseLayout(true) 
layout.setStackFromEnd(true); 

,这样,如果一个新的职位来它 将在顶部显示,而不是底部

回答

0

试试这个

mRecyclerView.getLayoutManager().scrollToPosition(pos); 

其中pos是将recycleView滚动到top set pos = 0的位置。

+0

我都试过,但我的名单是相反的它带我到列表的底部 –

0

您应该使用.smoothScrollToPosition平滑地滚动到所需的位置。

如果您的问题是您希望滚动位置位于列表的新视图的实际顶部。你应该创建一个使用自定义LinearSmoothScroller它覆盖了自定义LinearLayoutManager:override fun getVerticalSnapPreference(): Int = SNAP_TO_START

当你这样做覆盖.smoothScrollToPosition使用这一新的自定义平滑滚动

0

下面的代码将首先检查视图是否滚动或不会,并且会相应地改变按钮的可见性:

MyRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
    @Override 
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
     super.onScrollStateChanged(recyclerView, newState); 
    } 

    @Override 
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
     int visibility = (MyLayoutManager.findFirstCompletelyVisibleItemPosition() != 0) ? View.VISIBLE : View.GONE; 
     btn.setVisibility(visibility); 
    } 
});