动感biubiu 2023-04-08 12:15 采纳率: 46.2%
浏览 31
已结题

判断RecyclerView是否可以滚动

RecyclerView判断是否可以滚动。

网上的例子我都试过了,不行。
一、layoutManager.findLastCompletelyVisibleItemPosition() < adapter.getItemCount()-1
二、computeHorizontalScrollRange() > getWidth() || computeVerticalScrollRange() > getHeight();
三、canScrollVertically(0 / 1 / -1)

  • 写回答

5条回答 默认 最新

  • 社区专家-Monster-XH 2023-04-08 12:25
    关注

    基于Monster 组和GPT的调写:
    用canScrollVertically()或canScrollHorizontally()方法,这两个方法都是RecyclerView的方法,可以检查是否可以在垂直或水平方向上滚动。如果返回值为true,则表示可以滚动,否则不能滚动。

    示例代码:

    // 判断RecyclerView是否可以垂直滚动
    boolean isVerticalScrollable = recyclerView.canScrollVertically(1) || recyclerView.canScrollVertically(-1);
    if (isVerticalScrollable) {
        // 可以滚动
    } else {
        // 不能滚动
    }
    
    // 判断RecyclerView是否可以水平滚动
    boolean isHorizontalScrollable = recyclerView.canScrollHorizontally(1) || recyclerView.canScrollHorizontally(-1);
    if (isHorizontalScrollable) {
        // 可以滚动
    } else {
        // 不能滚动
    }
    
    
    

    如果RecyclerView的LayoutManager不支持滚动(例如,它是一个GridLayoutManager,但是设置了固定的列数和行数),则无论如何都会返回false。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月18日
  • 已采纳回答 4月10日
  • 创建了问题 4月8日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分