美文网首页
RecyclerView滚动到指定位置的对齐方式

RecyclerView滚动到指定位置的对齐方式

作者: 桔子和猫 | 来源:发表于2021-09-02 10:31 被阅读0次

项目中经常需要用到recyclerview的scrollToPosition方式滚动到指定位置, 但是有时会发现默认recycler会把指定的child滚动到完全可见即会停止滚动, 如果我们始终让child的顶边/左边和recycler的顶边/左边, 如果是用的LinearManager, 可以如下设置:

一, 自定义LinearSmoothScroller

public class RecycleScrollTopScroller extends LinearSmoothScroller {
    public RecycleScrollTopScroller(Context context) {
        super(context);
    }


    /**
     * 指定滚动停留位置
     * @return {@link #LinearSmoothScroller#SNAP_TO_START},{@link #LinearSmoothScroller#SNAP_TO_END},{@link #LinearSmoothScroller#SNAP_TO_ANY}
     * 1.将子视图的左侧或顶部与父视图的左侧或顶部对齐;
     * 2.将子视图的右侧或底部与父视图的右侧或底部对齐;
     * 3.具体取决于其当前与其父代相关的位置,也是默认设置。
     **/
    @Override
    protected int getHorizontalSnapPreference() {
        return SNAP_TO_START;
    }
    @Override
    protected int getVerticalSnapPreference() {
        return SNAP_TO_START;
    }
}

二, 使用自定义的scroller滚动到指定位置

 //滑动滚动
final RecycleScrollTopScroller mScroller = new RecycleScrollTopScroller(mActivity);
mScroller.setTargetPosition(1);
mManager.startSmoothScroll(mScroller); //mManager是要滚动的recycler的manager

相关文章

网友评论

      本文标题:RecyclerView滚动到指定位置的对齐方式

      本文链接:https://www.haomeiwen.com/subject/cgpqwltx.html