本以为
RecyclerView会像ListView一样有
smoothScrollToPosition的方法,用来做双击返回列表顶部的方法,但实际添加这个方法以后并没有什么卵用,于是查看器源代码
public void
smoothScrollToPosition(int position) {
if (mLayoutFrozen) {
return;
scrollToPositionWithOffset:offset - 项目视图的起始边缘与RecyclerView的起始边缘之间的距离(以像素为单位)。这里相比scrollToPosition,我们就可以设置偏移量:
如果offset = 0,我们可以理解为将目标Item刻意的滚动到顶部第一个可见位置,如果offset = 100,将目标Item刻意的滚动到距离顶部第一个可见位置往下偏移100px,然后以此类推...
如果只是想使某个位置可见,请使用scrollToPosition(int)
关于recyclerview滑向指定位置,肯定会想到scrollToPosition和smoothScrollToPosition两个方法。
源码分析scrollToPosition,最后会调用view的requestLayout,requestLayout是一个非常霸道的方法,会把UI线程全部锁死直到自己完成才会再次解锁。所以这个方法经常调用会出现卡顿。
而smoothScroll...
前言:使用RecyclerView时,调用smoothScrollToPostion()方法滑动到指定位置,但是条目很多时滑动的很慢,本篇文章就旨在实现RecyclerView的快速滑动。先介绍如何实现,然后再介绍原理。1. 实现代码
创建FastScrollLinearLayoutManager,继承LinearLayoutManager
复写smoothScrollToPosition()方法,
最近在开发的时候,遇到了需要通过代码使得RecyclerView能够滑到指定item顶部位置的需求,在查看源码之后,发现RecyclerView已经提供了实现滑动到指定位置的方法,下面是可实现方法:
//平滑滚动
recyclerView.smoothScrollToPosition(position);
//非平滑滚动
recyclerView.scrollToPosition(position...