导包 还得加一个maven地址自己也看一下作者git把有详细解释(自己也要导入recycleview的包)
我的例子下载地址 https://www.lanzous.com/i32yzaj
implementation 'com.github.Aspsine:IRecyclerView:0.0.7'
其实简单用法很简单 导包后 activity 和fragment 都可以 implements OnRefreshListener,OnLoadMoreListener 实现其中的方法loadmore refrash就行是我想复杂了【但是对于上拉刷新要setRefreshEnabled(true);和设置刷新的头部view 我以为作者在包里面封装了,后来发现并没封装 这个头部也是要自己写的吧 尾部也是......不知到是不是我理解错了 作者例子里也不是很详细 没有默认的封装好的 】
我的简单例子图片
我掉的坑就是设置头部和尾部view,以为不设置会有默认的其实没有 ,第二个 copy作者的xml文件和那个头部和尾部view类 xml文件出错
layout_irecyclerview_load_more_footer.xml
<com.stdu.LoadMoreFooterView xmlns:andro
android:layout_width="match_parent"
android:layout_height="48dp"/>
com.stdu.LoadMoreFooterView 这个要是你的类路径 直接copy作者的弄了一会
其他的就很简单
上Mainactivity代码
public class MainActivity extends AppCompatActivity implements OnRefreshListener,OnLoadMoreListener{ List<Teacher> list; IRecyclerView view; TeacherAdapter1 adapter; LoadMoreFooterView loadMoreFooterView; int num=1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initList(); view = findViewById(R.id.view); loadMoreFooterView= (LoadMoreFooterView) view.getLoadMoreFooterView(); view.setLayoutManager(new LinearLayoutManager(this)); initRefreshView();//初始化刷新 initLoadMoreView();//初始化加载更多 adapter = new TeacherAdapter1(R.layout.item,list);//TeacherAdapter(this,list); adapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { @Override public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { Toast.makeText(MainActivity.this,"哈哈"+position,Toast.LENGTH_SHORT).show(); } }); view.setIAdapter(adapter); //注意setIAdapter 中间有个I } private void initRefreshView() { view.setRefreshEnabled(true); // System.out.println("initRefreshView------------------"); //这两个类是直接从作者哪里八下来的 我发现作者没提供默认样式..........是我没找到错了码? ClassicRefreshHeaderView classicRefreshHeaderView = new ClassicRefreshHeaderView(this); classicRefreshHeaderView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,80 )); view.setRefreshHeaderView(classicRefreshHeaderView); view.setOnRefreshListener(this); } private void initLoadMoreView() { view.setOnLoadMoreListener(this); view.setLoadMoreEnabled(true); view.setOnLoadMoreListener(this); } @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { view.setRefreshing(false); } },2000); } //初始化载入的list private void initList() { list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(new Teacher(R.mipmap.ic_launcher,"teacher "+i)); } } @Override public void onLoadMore() { num++; //模拟假数据如果num<3则请求到了数据 loadMoreFooterView.setStatus(LoadMoreFooterView.Status.LOADING);//向上滑动就显示loading 界面 if(num<=3) { new Handler().postDelayed(new Runnable() { @Override//延迟两秒执行 public void run() { //模拟网上得到数据封装成list for (int i = 0; i < 10; i++) { list.add(new Teacher(R.mipmap.ic_launcher, "第二次加载 " + i)); } //System.out.println("载入其他数据"); loadMoreFooterView.setStatus(LoadMoreFooterView.Status.GONE);//得到数据loading界面消失 } },2000); }else { loadMoreFooterView.setStatus(LoadMoreFooterView.Status.THE_END);//数据加载完 } } }