Recyclerview的下拉刷新和上拉加载

来源:互联网 发布:微妙体育淘宝是真的吗 编辑:程序博客网 时间:2024/06/07 09:13
布局
<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/sw" android:layout_width="wrap_content" android:layout_height="wrap_content" >  <android.support.v7.widget.RecyclerView        android:id="@+id/rv"        android:layout_width="match_parent"        android:layout_height="wrap_content"        /></android.support.v4.widget.SwipeRefreshLayout>
设置监听
sw.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {     @Override     public void onRefresh() {         presnter.login(1);         sw.setRefreshing(false);     } });
添加底部监听
  1. mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
  2. @Override
  3. public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
  4. //当前RecyclerView显示出来的最后一个的item的position
  5. int lastPosition = -1;
  6.  
  7. //当前状态为停止滑动状态SCROLL_STATE_IDLE时
  8. if(newState == RecyclerView.SCROLL_STATE_IDLE){
  9. RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
  10. if(layoutManager instanceof GridLayoutManager){
  11. //通过LayoutManager找到当前显示的最后的item的position
  12. lastPosition = ((GridLayoutManager) layoutManager).findLastVisibleItemPosition();
  13. }else if(layoutManager instanceof LinearLayoutManager){
  14. lastPosition = ((LinearLayoutManager) layoutManager).findLastVisibleItemPosition();
  15. }
  16. //时判断界面显示的最后item的position是否等于itemCount总数-1也就是最后一个item的position
  17. //如果相等则说明已经滑动到最后了
  18. if(lastPosition == recyclerView.getLayoutManager().getItemCount()-1){
  19. Toast.makeText(RecyclerActivity.this, "滑动到底了", Toast.LENGTH_SHORT).show();
  20. }
  21.  
  22. }
  23. }
  24.  
  25. @Override
  26. public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
  27.  
  28. }
  29.  
  30. });
阅读全文
0 0
原创粉丝点击