xrecycleview实现上拉刷新,下拉加载

xml布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <com.jcodecraeer.xrecyclerview.XRecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/quan"
        ></com.jcodecraeer.xrecyclerview.XRecyclerView>
</LinearLayout>

主代码

package bwie.com.shizhan2.fragment;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.List;

import bwie.com.shizhan2.R;
import bwie.com.shizhan2.adapter.QuanZiAdapter;
import bwie.com.shizhan2.bean.QuanBean;
import bwie.com.shizhan2.presenter.QuanPresenterClass;

public class QuanZiFragment extends Fragment
{
    private XRecyclerView quan;
    private int page =1;
    private int count =8;
    private QuanZiAdapter quanZiAdapter;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.quanzi, container, false);
        quan = view.findViewById(R.id.quan);
        quan.setLoadingMoreEnabled(true);
        quan.setPullRefreshEnabled(true);
        final QuanPresenterClass quanPresenterClass = new QuanPresenterClass(this);
        quanPresenterClass.getQuanPdata(page ,count);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        quan.setLayoutManager(linearLayoutManager);
        quan.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh()
            {
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        page =1;
                        count =10;
                        quanPresenterClass.getQuanPdata(page,count);
                        quanZiAdapter.notifyDataSetChanged();
                        quan.refreshComplete();
                    }
                },2000);

            }
            @Override
            public void onLoadMore()
            {
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        count ++;
                        page ++;
                        quanPresenterClass.getQuanPdata(page,count);
                        quanZiAdapter.notifyDataSetChanged();
                        quan.loadMoreComplete();
                    }
                },2000);

            }
        });
        return view;
    }
    public void getData(Object obj)
    {
        QuanBean quanzi = (QuanBean) obj;
        List<QuanBean.ResultBean> result = quanzi.getResult();
        Log.e("getData",result+"");
        quanZiAdapter = new QuanZiAdapter(getActivity(), result);
        quan.setAdapter(quanZiAdapter);
    }
}

上拉下拉presenter的改变

//接口层
package bwie.com.shizhan2.presenter;

public interface QuanPresenterInter
{
    public void getQuanPdata(int page,int count);
}



 //           类层
package bwie.com.shizhan2.presenter;

import bwie.com.shizhan2.api.Api;
import bwie.com.shizhan2.fragment.QuanZiFragment;
import bwie.com.shizhan2.model.QuanModelClass;
import bwie.com.shizhan2.model.QuanModelInter;

public class QuanPresenterClass implements QuanPresenterInter
{
    QuanZiFragment  quanZiFragment;
    private final QuanModelClass quanModelClass;

    public QuanPresenterClass(QuanZiFragment  quanZiFragment)
    {
        this.quanZiFragment = quanZiFragment ;
        quanModelClass = new QuanModelClass();
    }



    @Override
    public void getQuanPdata(int page,int count)
    {
        quanModelClass.getQuanData(Api.QUANZI+"?page="+page+"&count="+count, new QuanModelInter.QuanCallBack() {
            @Override
            public void loadSuccess(Object obj) {
             quanZiFragment.getData(obj);
            }

            @Override
            public void loadFail() {

            }
        });

    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43884470/article/details/86559069