点击按钮,将RecycleView滚动到android中的顶部位置

时间:2017-07-27 08:52:33

标签: android xml android-recyclerview

我正在制作一个包含 recyclerView 的应用程序,我已经成功实现了,现在是我的  想要的是,如果我在工具栏上放置一个按钮,用于回滚到回收站中的项目顶部,当我点击该按钮时,我的RecyclerView会滚动到顶部项目第一项出现在我的 recycleView列表中,我研究了很多问题,但没有找到任何有用的解决方案来解决我的问题。请帮忙

  

我正在使用Android Studio。

     

并且RecyclerView也使用

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

这样如果发布一个新帖子   将显示在顶部而不是底部

4 个答案:

答案 0 :(得分:0)

尝试这个

mRecyclerView.getLayoutManager().scrollToPosition(pos);

其中pos是将recycleView滚动到顶部设置pos = 0的位置。

答案 1 :(得分:0)

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

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

完成此操作后,覆盖.smoothScrollToPosition以使用此新的自定义平滑滚动条

答案 2 :(得分: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);
    }
});

答案 3 :(得分:0)

尝试此链接一次。这里有清楚的解释。测量recyclerview的高度和宽度。然后将recyclerview滚动到任何坐标。

Visit this link in android documentation