1. SmartRefreshLayout是一款实现上拉加载、下拉刷新的控件,网络上相关内容也很多,在这里简单总结下我的使用
  2.  
  3. 使用SmartRefreshLayout需导入依赖:
    implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-14'
    implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-14'//使用特殊的Header(不是必须)
  4.  
  5. xml布局文件
    <com.scwang.smartrefresh.layout.SmartRefreshLayout
  1. 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;//每页显示行数
  2.  
  3. //初始化及事件
    refreshLayout = findViewById(R.id.refreshLayout);

    //刷新
    mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
    @Override
    public void onRefresh(RefreshLayout refreshlayout) {
    getData();//
    refreshlayout.finishRefresh();
    }
    });
  4. //加载更多
    mRefreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {
    @Override
    public void onLoadmore(RefreshLayout refreshlayout) {
    getData();//
    refreshlayout.finishLoadmore();
    if(current_page >= pages){//判断当前页是否最后一页
      refreshlayout.finishLoadMoreWithNoMoreData();//完成加载并标记没有更多数据
    }
    }
    });
  5. //获取数据方法,可改为获取服务器数据
    public void getTable(){
    if(current_page <= 1){
    current_page = 1;
    }
    if(current_page >= pages){
    current_page = pages;
    }
  1. 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.  
  1.  

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. pamamiko的安装

    pamiko的安装 Paramiko的安装依赖第三方的crypto,ecdsa,及python开发包的python-devel的支持,源码包安装如下 安装 安装paramiko有两个先决条件,pyth ...

  2. keras训练大量数据的办法

    最近在做一个鉴黄的项目,数据量比较大,有几百个G,一次性加入内存再去训练模青型是不现实的. 查阅资料发现keras中可以用两种方法解决,一是将数据转为tfrecord,但转换后数据大小会方法不好:另外 ...

  3. PHP读取txt文件的内容并赋值给数组的代码

    使用file_get_contents()获取txt文件的内容,然后通过explode()把获得的字符串转化为数组. 获得数组长度可以使用count()函数 <?php $file = 'key ...

  4. 二分答案 + multiset || NOIP 2018 D1 T3 || Luogu P5021 赛道修建

    题面:P5021 赛道修建 题解:二分答案,用Dfs进行判断,multiset维护. Dfs(x,fa,Lim)用来计算以x为根的子树中有多少符合条件的路径,并返回剩余未使用的最长路径长. 贪心思想很 ...

  5. mysql每日数据统计

    select a.click_date from ( SELECT curdate() as click_date union all day) as click_date union all day ...

  6. HashMap,LinkedHashMap,TreeMap的有序性

    HashMap 实际上是一个链表的数组.HashMap 的一个功能缺点是它的无序性,被存入到 HashMap 中的元素,在遍历 HashMap 时,其输出是无序的.如果希望元素保持输入的顺序,可以使用 ...

  7. HTML5 Geolocation学习

    GeolocationAPI学习,我写的挺枯燥的,直接跳到最后看示例. 5.1 位置信息 HTML5 Geolocation API的使用方法相当简单.请求一个位置信息,如果用户同意,浏览器就会返回位 ...

  8. 交互式数据可视化-D3.js(三)比例尺

    线性比例尺 线性比例尺是常用比例尺常用方法有: var linear = d3.scaleLinear() - 创建一个定量的线性比例尺. linear.domain([numbers]) - 定义或 ...

  9. 【leetcode】1262. Greatest Sum Divisible by Three

    题目如下: Given an array nums of integers, we need to find the maximum possible sum of elements of the a ...

  10. ORACLE获取BOM清单

    BOM 结构如图 -- 1DH142-022 (DRIVE) -- 100729421  (PCBA) -- 100764148  (HDA) -- 100687050 (VCM) -- 100701 ...