Android 判断RecyclerView滚动到底部

原创文章,如有转载,请注明出处:http://blog.csdn.net/myth13141314/article/details/60866752

首先看看RecyclerView的简单使用

  • 首先是常见的使用步骤
RecyclerView recyclerView = (RecyclerView) rootView.findViewById(R.id.rlv_recycleview);

//布局管理器,这里是GridView布局,列数为3列
GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 3);

//或者也可以是LinearLayoutManager
//LinearLayoutManager layoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false);

//设置布局管理器
recyclerView.setLayoutManager(layoutManager);

//设置适配器
recyclerView.setAdapter(mAdapter);

//添加分割线
recyclerView.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));
  • 然后是适配器的编写
private class myAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>  {

        private List<String> names = new ArrayList<String>();

        //构造函数
        public myAdapter (List<String> names) {
            this.names = names;
        }

        //view的布局类型
        @Override
        public int getItemViewType(int position) {
            return 0;//return your type
        }


        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, List<Object> payloads) {
            super.onBindViewHolder(holder, position, payloads);
        }

        //item数量
        @Override
        public int getItemCount() {
          return strings.size();
        }

        @Override
        public long getItemId(int position) { return position; }

        //生成布局和Viewholder
        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(getContext()).inflate(R.layout.cell_recycleview, null);
            MyViewHolder myViewHolder = new MyViewHolder(view);
            return  myViewHolder;
        }

        //UI的更新,设置数据,点击监听等
        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {

            String name = names.get(position);

            ((MyViewHolder) viewHolder).nameTextView.setText(name);
            ((MyViewHolder) viewHolder).rootView.
            ((MyViewHolder) viewHolder).rootView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                       //recrclerView 点击事件
                    }
                });

        }

        //自定义ViewHolder
        public class MyViewHolder extends RecyclerView.ViewHolder {

            public View rootView;
            public TextView nameTextView;


            public MyViewHolder (View view) {
                super(view);
                rootView = view;

                nameTextView = (TextView) view.findViewById(R.id.tv_name);
            }
        }
}

判断滚动到底部,需要为recyclerview添加滚动监听

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

        //第一个可见item的位置
        int firstVisibleItem =((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstVisibleItemPosition();

        //当前可见的item数
        int visibleItemCount = ((LinearLayoutManager)recyclerView.getLayoutManager()).getChildCount();

        //总共的item数
        int totalItemCount = ((LinearLayoutManager)recyclerView.getLayoutManager()).getItemCount();

        if (firstVisibleItem == 0) {//滚动到顶部
            isTop = true;            
        }else {
            isTop = false;       
        }

        // 满足下列条件后即滚动到底部,如有需要可开始加载下一页
        if (firstVisibleItem + visibleItemCount > totalItemCount - 2) {
            if (current_page>=1 && total_page>current_page) {//根据实际,再加一些加载更多的条件判断

                loadMoreData();//加载更多
            }
        }
    }
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值