SmartRefreshLayout是一款实现上拉加载、下拉刷新的控件,网络上相关内容也很多,在这里简单总结下我的使用

使用SmartRefreshLayout需导入依赖:
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-14'
implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-14'//使用特殊的Header(不是必须) xml布局文件
<com.scwang.smartrefresh.layout.SmartRefreshLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
app:srlPrimaryColor="@android:color/white"
app:srlAccentColor="@android:color/darker_gray"
app:srlEnablePreviewInEditMode="true">
<!--srlAccentColor srlPrimaryColor 控制 Header 和 Footer 的背景颜色-->
<!--srcAccentColor 控制 Header 和 Footer 字体颜色-->
<!--srlEnablePreviewInEditMode 开启和关闭预览功能-->
<com.scwang.smartrefresh.layout.header.ClassicsHeader
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:orientation="vertical"
android:background="@color/white">
<ListView
      android:id="@+id/listview"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />

</LinearLayout>
<com.scwang.smartrefresh.layout.footer.ClassicsFooter
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>

//声明
private SmartRefreshLayout refreshLayout;
int current_page = 1;//当前页,默认第一页
int pages = 1;//总页数,获取服务端数据
int rows = 20;//每页显示行数 //初始化及事件
refreshLayout = findViewById(R.id.refreshLayout);

//刷新
mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(RefreshLayout refreshlayout) {
getData();//
refreshlayout.finishRefresh();
}
}); //加载更多
mRefreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {
@Override
public void onLoadmore(RefreshLayout refreshlayout) {
getData();//
refreshlayout.finishLoadmore();
if(current_page >= pages){//判断当前页是否最后一页
  refreshlayout.finishLoadMoreWithNoMoreData();//完成加载并标记没有更多数据
}
}
}); //获取数据方法,可改为获取服务器数据
public void getTable(){
if(current_page <= 1){
current_page = 1;
}
if(current_page >= pages){
current_page = pages;
}
    int satrt = (current_page - 1) * count;
int end = current_page * count;
for (int i = satrt; i < end; i++) {
Map<String, String> item = new HashMap<>();
item.put("name","value"+i);
table_list.add(item);
}
//后续步骤为listview的使用方式,在此省略
...
}


 
 


最新文章

  1. storm trident 示例
  2. web安全之sql注入联合查询
  3. Tiny语法分析器(递归下降分析法实现)
  4. std::remove
  5. Android(java)学习笔记121:android.intent.action.MAIN 与 android.intent.category.LAUNCHER 理解
  6. bm25
  7. java集合简介
  8. Spring整合Hibernate--声明式事务管理
  9. [Swift]LeetCode238. 除自身以外数组的乘积 | Product of Array Except Self
  10. 简明 Vim 练级攻略------转自陈皓coolshell
  11. BZOJ3159决战——树链剖分+非旋转treap(平衡树动态维护dfs序)
  12. [Aaronyang] 写给自己的WPF4.5 笔记7[三巴掌-ItemsControl数据绑定详解与binding二次处理 3/3]
  13. java socket之多人聊天室Demo
  14. loli的搜索测试-5
  15. 【WP8】线程安全的StorageHelper
  16. urllib 基础模块
  17. python课件-淘宝-目录.txt
  18. Drawable子类之——StateListDrawable (选择器)
  19. 在没Hadoop 、GP 前提下怎么进行实时数据统计。
  20. DotNetBar For Windows Forms 12.5.0.2 官方原版及注册

热门文章

  1. C语言字符串操作小结
  2. 14Filter&amp;Listener
  3. poi导出excel数据量过大
  4. 〇——HTML的本质以及在Web程序中的作用
  5. ab测试nginx Nginx性能优化
  6. [LeetCode 92] Reverse Linked List II 翻转单链表II
  7. 对abel 转译 class 过程的研究----------------------引用
  8. Here is a test page for my new blog in cnblogs
  9. 解决 sublime输入一个字符后后面一个字符就会自动删除的问题
  10. C# checkedlistbox 控件 有bug