PollToRefreshRecyclerView 上拉加载下拉刷新及适配器 依赖

public class PandaEyeFragment extends BaseFragment {
    @BindView(R.id.pandaEyeRecyclerView)
    PullToRefreshRecyclerView pandaEyeRecyclerView;
    private List rows;
    private RyhAdapter adapter;
    private int currentPage = 1;
    private int flag = 0;//0代表下拉刷新 1代表上拉加载


    @Override
    protected int getLayoutId() {
        return R.layout.panda_eye_fragment;
    }


    @Override
    protected void init() {


        rows = new ArrayList<>();
        adapter = new RyhAdapter(getActivity(),rows);
        LinearLayoutManager manager = new LinearLayoutManager(getActivity());
        pandaEyeRecyclerView.setLayoutManager(manager);
        pandaEyeRecyclerView.setAdapter(adapter);
        //开启下拉刷新
        pandaEyeRecyclerView.setPullRefreshEnabled(true);
        //开启上拉加载
        pandaEyeRecyclerView.setLoadingMoreEnabled(true);


        pandaEyeRecyclerView.setPullToRefreshListener(new PullToRefreshListener() {
            //下拉刷新
            @Override
            public void onRefresh() {


                flag = 0;
                currentPage = 1;
                loadRyhList(currentPage);
                //发送网络请求刷新数据
                Toast.makeText(getActivity(), "下拉刷新", Toast.LENGTH_SHORT).show();
            }


            //上拉加载
            @Override
            public void onLoadMore() {
                flag = 1;
                //发送网络请求加载下一页
                loadRyhList(currentPage);


                Toast.makeText(getActivity(), "上拉加载", Toast.LENGTH_SHORT).show();
            }
        });
    }


    @Override
    protected void loadData() {
        loadRyhList(currentPage);
    }


    private void loadRyhList(int page){
        Map params = new HashMap<>();
        params.put("_search","true");
        params.put("rows","10");
        params.put("page",""+page);
        params.put("sidx","");
        params.put("sord","");
        params.put("filters","{\"groupOp\":\"AND\",\"rules\":[]}");
        RetrofitUtils.getInstance().getPandaService().ryh(Urls.RYH,params)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.newThread())
                .subscribe(new Consumer() {
                    @Override
                    public void accept(RyhBean ryhBean) throws Exception {
                        if (flag == 0){
                            rows.clear();
                            rows.addAll(ryhBean.getRows());
                            pandaEyeRecyclerView.setRefreshComplete();//下拉刷新完成
                        }else {
                            rows.addAll(ryhBean.getRows());
                            pandaEyeRecyclerView.setLoadMoreComplete();//上拉加载完成
                        }


                        currentPage++;
                        adapter.notifyDataSetChanged();




                    }
                });

    }

依赖:

compile 'com.androidkun:pulltorefreshrecyclerview:1.0.9'

适配器 :

public class PollAdapter extends BaseAdapter {
    private Context context;
    private List datas;
    public PollAdapter(Context context,List datas) {
        super(context, R.layout.poll_item, datas);
        this.context =context;
        this.datas = datas;
    }

    @Override
    public void convert(ViewHolder holder, DataBean.StudentsBean.StudentBean studentBean) {
        String name = studentBean.getName();
        holder.setText(R.id.name,name);
        Glide.with(context).load(studentBean.getImg()).into((ImageView) holder.getView(R.id.img));
    }

    @Override
    public int getItemViewType(int position) {
        return position;
    }

    @Override
    public int getItemCount() {
        return datas.size();
    }
}

你可能感兴趣的:(PollToRefreshRecyclerView 上拉加载下拉刷新及适配器 依赖)