RecyclerView需要滚动到指定位置,可以使用
mRecyclerView.scrollToPosition(position)
mRecyclerView.smoothScrollToPosition(position)
等
但默认LinearLayoutManager滚动到指定位置分三种情况,指定item出现在屏幕中,指定item顶部出现在屏幕中,指定item底部出现在屏幕中,此时就需要覆写LinearSmoothScroller的getVerticalSnapPreference方法,返回值可以为LinearSmoothScroller.SNAP_TO_START或LinearSmoothScroller.SNAP_TO_END或LinearSmoothScroller.SNAP_TO_ANY,然后覆写LinearLayoutManager的方法smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position)
在该方法中调用
linearSmoothScroller.setTargetPosition(position);
startSmoothScroll(linearSmoothScroller);
即可实现滚动到指定位置并指定方式对齐。
网友评论