当前位置: 首页 > news >正文

解决RecyclerView在调用smoothScrollToPosition后最后一个item底部超出屏幕的问题

要解决RecyclerView在调用smoothScrollToPosition后最后一个item底部超出屏幕的问题,可以使用自定义的LinearSmoothScroller,使其底部对齐屏幕。步骤如下:

  1. 创建自定义的SmoothScroller类
    继承LinearSmoothScroller并重写getVerticalSnapPreference方法,指定对齐方式为底部(SNAP_TO_END)。

public class BottomSmoothScroller extends LinearSmoothScroller {

    public BottomSmoothScroller(Context context) {
        super(context);
    }

    @Override
    protected int getVerticalSnapPreference() {
        return LinearSmoothScroller.SNAP_TO_END; // 对齐到底部
    }

    @Override
    public PointF computeScrollVectorForPosition(int targetPosition) {
        LinearLayoutManager layoutManager = (LinearLayoutManager) getLayoutManager();
        if (layoutManager == null) {
            return null;
        }
        return layoutManager.computeScrollVectorForPosition(targetPosition);
    }
}
 
  1. 使用自定义Scroller滚动到指定位置
    在需要滚动到最后一个item时,使用自定义的BottomSmoothScroller

int lastPosition = getItemCount() - 1;
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
BottomSmoothScroller smoothScroller = new BottomSmoothScroller(recyclerView.getContext());
smoothScroller.setTargetPosition(lastPosition);
layoutManager.startSmoothScroll(smoothScroller);

解释

  • SNAP_TO_END:确保目标item的底部与RecyclerView的底部对齐,使整个item可见。

  • computeScrollVectorForPosition:根据布局方向计算滚动向量,支持垂直或水平布局。

此方法通过调整滚动对齐方式,确保最后一个item完全显示,避免底部超出屏幕。

相关文章:

  • Word / WPS 页面顶部标题 段前间距 失效 / 不起作用 / 不显示,标题紧贴页眉 问题及解决
  • 数据库主从复制学习笔记
  • Android 中支持旧版 API 的方法(API 30)
  • 深入解析计算机操作系统的底层架构与核心模块功能
  • SQL 查询中使用 IN 导致性能问题的解决方法
  • vue3开发基础流程(前21)
  • 2025年认证杯C题超详细解题思路
  • 基于Flask的勒索病毒应急响应平台架构设计与实践
  • uniApp开发微信小程序-连接蓝牙连接打印机上岸!
  • Java抽象类与抽象方法详解
  • WSA(Windows 安卓子系统)过检测教程
  • ECMAScript 6 新特性(二)
  • 蓝桥杯python组考前准备
  • 代码随想录第14天:(二叉树)
  • CasaOS香橙派安装HomeAssistant智能家居系统并实现远程管理家中智能设备
  • 微服务简述
  • Backtrader从0到1——第一个回测策略
  • Gerapy二次开发:用户管理专栏主页面开发
  • 算法训练之动态规划(二)
  • 深度解析强化学习:原理、算法与实战
  • aspx网站模板/淘宝客推广平台
  • 杭州工作招聘网/seo西安
  • 个人网站的搭建步骤/茶叶seo网站推广与优化方案
  • 西昌市网站建设公司/一媒体app软件下载老版本
  • 高端建站收费/网奇seo赚钱培训
  • 晋中做网站的公司/网络营销第三版课本