监听recyclerview滑动到底部(横向,纵向)

监听横向Recyclerview滑动到底部

    recyclerview.addOnScrollListener(object : RecyclerView.OnScrollListener() {
            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {

            }

            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {

                //得到当前显示的最后一个item的view
                val lastChildView = recyclerView.layoutManager!!.getChildAt(recyclerView.layoutManager!!.childCount - 1)
                //得到lastChildView的bottom坐标值
                val lastChildBottom = lastChildView!!.right
                //得到Recyclerview的底部坐标减去底部padding值,也就是显示内容最底部的坐标
                val recyclerBottom = recyclerView.right - recyclerView.rightPadding
                //通过这个lastChildView得到这个view当前的position值
                val lastPosition = recyclerView.layoutManager!!.getPosition(lastChildView)

                //判断lastChildView的bottom值跟recyclerBottom相等
                //判断lastPosition是不是最后一个position
                if (lastChildBottom == recyclerBottom && lastPosition == recyclerView.layoutManager!!.itemCount - 1) {
                    Toast.makeText(context, "到底了", Toast.LENGTH_SHORT).show();
                }
            }
        })

监听纵向Recyclerview滑动到底部

mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {

    }

    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

        //得到当前显示的最后一个item的view
        View lastChildView = recyclerView.getLayoutManager().getChildAt(recyclerView.getLayoutManager().getChildCount()-1);
        //得到lastChildView的bottom坐标值
        int lastChildBottom = lastChildView.getBottom();
        //得到Recyclerview的底部坐标减去底部padding值,也就是显示内容最底部的坐标
        int recyclerBottom =  recyclerView.getBottom()-recyclerView.getPaddingBottom();
        //通过这个lastChildView得到这个view当前的position值
        int lastPosition  = recyclerView.getLayoutManager().getPosition(lastChildView);

        //判断lastChildView的bottom值跟recyclerBottom是否相等
        //判断lastPosition是不是最后一个position
        if(lastChildBottom == recyclerBottom && lastPosition == recyclerView.getLayoutManager().getItemCount()-1 ){
            Toast.makeText(context, "到底了", Toast.LENGTH_SHORT).show();
        }
    }
    });
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值