滚动到recyclerView中第一个完全可见的项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了滚动到recyclerView中第一个完全可见的项目相关的知识,希望对你有一定的参考价值。
我正在尝试滚动到滚动时第一个完全可见的项目,我正在做以下事情:
recyclerView.addOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
LinearLayoutManager layoutManager = ((LinearLayoutManager) recyclerView
.getLayoutManager());
int position = layoutManager.findFirstCompletelyVisibleItemPosition();
if(position>0){
recyclerView.smoothScrollToPosition(position);
Log.e(TAG, "onScrolled: just called smooth scroll >> "+position );
}
}
});
我正在获得完全可见项目的正确位置,但滚动到它[尝试将其滚动到屏幕的可见部分的初始位置]不起作用。我尝试通过以下方式实现它:
1.
recyclerView.smoothScrollToPosition(position);
2.
layoutManager.smoothScrollToPosition(recyclerView, null, position);
他们没有改变!!我用谷歌搜索解决方案,但我找不到合适的解决方案。请建议我如何实现这一目标?
答案
使用SnapHelper
SnapHelper snapHelper = new GravitySnapHelper(Gravity.START);
snapHelper.attachToRecyclerView(startRecyclerView);
有关更多详细信息,请阅读本文:https://rubensousa.github.io/2016/08/recyclerviewsnap
以上是关于滚动到recyclerView中第一个完全可见的项目的主要内容,如果未能解决你的问题,请参考以下文章
在键盘打开时将项目添加到 RecyclerView 时向下滚动
LinearLayout 和 NestedScrollView 内的 RecyclerView - 如何滚动到某个位置的项目顶部?
当滚动超出最初可见的范围时,无法访问 recyclerview 中的 textview
RecyclerView SnapHelper 无法显示第一个/最后一个项目
具有 RecyclerView 的页面中 Persistent 或 Standard BottomSheet 的奇怪滚动行为和可见性
当在nestedscrollview的recyclerview中将项目拖出可见空间时-nestedscrollView不滚动