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的使用方式,在此省略
...
}


 
 


Android SmartRefreshLayout 使用的更多相关文章

  1. Android 下拉刷新上啦加载SmartRefreshLayout + RecyclerView

    在弄android刷新的时候,可算是耗费了一番功夫,最后发觉有现成的控件,并且非常好用,这里记录一下. 原文是 https://blog.csdn.net/huangxin112/article/de ...

  2. Android 使用NestedScrollView+ViewPager+RecyclerView+SmartRefreshLayout打造酷炫下拉视差效果并解决各种滑动冲突

    如果你还在为处理滑动冲突而发愁,那么你需要静下心来看看这边文章,如果你能彻底理解这篇文章中使用的技术,那么,一切滑动冲突的问题解决起来就轻而易举了: 先扔一个最终实现的效果图 先分析下效果图中实现的功 ...

  3. 032 Android智能下拉刷新框架-SmartRefreshLayout+RecyclerView的使用

    1.SmartRefreshLayout介绍 SmartRefreshLayout的目标是打造一个强大,稳定,成熟的下拉刷新框架,并集成各种的炫酷.多样.实用.美观的Header和Footer. 正如 ...

  4. 分享 android 源码

    Android精选源码 UI框架 QSkinLoader换肤框架 一款优雅的中国风Android笔记源码 ListView.RecyclerView两种方式实现聊天界面 android仿滴滴时间选择控 ...

  5. Android智能下拉刷新加载框架—看这些就够了

    一些值得学习的几个下拉刷新上拉加载开源库 Android智能下拉刷新框架-SmartRefreshLayout 支持所有的 View(AbsListView.RecyclerView.WebView. ...

  6. Android 项目中用得最多最火的第三方框架可能都在这里了

    分类 二级分类 框架名称 简介 Star 数 最近更新 UI 刷新 SmartRefreshLayout 智能下拉刷新框架 14k 18天 UI 刷新 Android-PullToRefresh 比较 ...

  7. 从零开始搭建Android组件化框架

    问题 在已经开发过几个项目的童鞋,如果这时需要重新开发一个新项目,是否需要自己重新搭建框架呢,还是从老项目中拷贝粘贴? 我们是否可以封装一个底层的lib库,这个底层的公共基础库 包括了一些第三方库(如 ...

  8. android -------- Retrofit + RxJava2.0 + Kotlin + MVP 开发的 WanAndroid 项目

    简介 wanandroid项目基于 Retrofit + RxJava2.0 + Kotlin + MVP 用到的依赖 implementation 'io.reactivex.rxjava2:rxj ...

  9. android搜索框列表布局,流程及主要步骤思维导图

    android搜索框列表布局,流程及主要步骤思维导图 android搜索框列表布局,流程及主要步骤思维导图 activity_coin_search.xml----------<com.scwa ...

随机推荐

  1. 小米Air安装Arch Linux之图形界面配置(Gnome 和 sway)持续更新中……

    0. 前言 上一篇文章简单讲述了在小米Air上安装Arch Linux的经验,但是安装完后基本系统后,还需要额外的配置才能进到日常使用.下文简单列举一些步骤. 1. 参考网站 主要还是参考ARCH W ...

  2. 手动从Spring中获取指定对象

    1.创建ApplicationContext对象: ApplicationContext context = new FileSystemXmlApplicationContext("D:/ ...

  3. ES数据架构与关系数据库Mysql

    ES数据架构的主要概念(与关系数据库Mysql对比) MySQL ElasticSearch Database Index Table Type Row Document Column Field S ...

  4. java 数组转list asList用法

    https://www.cnblogs.com/zheyangsan/p/6910476.html java中数组转list使用Arrays.asList(T... a)方法. 示例: public ...

  5. vim简明教程(附快速记忆方法)

    vim分为四种模式: 普通模式(normal mode) 插入模式(insert mode) 可视模式(visual mode) 命令模式(excute mode) 下面整理了常用的快捷键和记忆方法( ...

  6. 添加了两个IP

    //第一步:添加了两个IP root@default:~# ifconfig eth1:0 192.168.99.10 netmask 255.255.255.0 up root@default:~# ...

  7. HDU - 6395 Sequence (整除分块+矩阵快速幂)

    定义数列: $\left\{\begin{eqnarray*} F_1 &=& A \\ F_2 &=& B \\ F_n &=& C\cdot{}F_ ...

  8. TCP/IP网络编程系列之一(初级)

    概述 网络编程实际上就是编写程序使两台联网的计算机相互的交换数据.操作系统会提供名为“ 套接字 ”的部件.套接字是网络数据传输的软件设备,即使对网络数据传输原理不太熟悉也无关紧要.我们也能通过套接字完 ...

  9. Burpsuite的Intruder模块发现敏感目录

    提前配置好浏览器的代理设置,并且成功访问了目标地址(这里是http://192.168.146.133/WackoPicko) 1.在burpsuite的proxy栏目中,找到对WackoPicko路 ...

  10. 并行计算基础(1)(GPU架构介绍)

    一.常用术语 Task:任务.可以完整得到结果的一个程序,一个程序段或若干个程序段.例如搬砖. Parallel Task:并行任务.可以并行计算的任务.多个人搬砖. Serial Execution ...