昨天没有写博客。心里非常罪过呀,今天给大家写两种比較常见的下拉刷新的用法。一款是SwipeRefreshLayout,一款是CircleRefreshLayout。

SwipeRefreshLayout的用法

贴下布局:

    <android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/laySwipeRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"> <com.example.boao.widget.AutoRecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>

能够看到SwipeRefreshLayout是基于v4包,那就表面这是谷歌官方在推荐使用的,仅仅要加入了v4包即可了

简单的布局设置,就是用SwipeRefreshLayout包括RecyclerView,ListView,GridView都能够的。

如今我们看看在代码中怎么使用的吧

swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() { getDatas();
}
});

实例化SwipeRefreshLayout我就不谈了,调用SwipeRefreshLayout的setOnRefreshListener方法,监听载入事件,在onRefresh() 方法中调用请求数据的方法,来刷新数据

当然这还没有完,由于还没设置刷新的结束

在请求数据成功之后调用swipeRefreshLayout.setRefreshing(false);方法,设置不刷新,即可了。

SwipeRefreshLayout刷新的效果展示

SwipeRefreshLayout包括的方法远远不至于此。在贴上SwipeRefreshLayout包括的方法

从上往下依次是:

1.设置刷新圆圈的大小

2.设置是否刷新

3.设置刷新的背景色

4.同上

5.设置触发刷新的下拉距离

6.设置刷新的背景颜色

好啦。SwipeRefreshLayout就介绍到这。

下一步介绍CircleRefreshLayout

这是一个第三方库https://github.com/tuesda/CircleRefreshLayout,用法相似swipeRefreshLayout,

贴上效果图,看大家想不想用

用法

<com.tuesda.walker.circlerefresh.CircleRefreshLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
app:AniBackColor="#ff8b90af"
app:AniForeColor="#ffffffff"
app:CircleSmaller="6"
android:id="@+id/refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:background="#ffffffff"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</com.tuesda.walker.circlerefresh.CircleRefreshLayout>

通第一款一样,都是包括列表布局

mRefreshLayout.setOnRefreshListener(
new CircleRefreshLayout.OnCircleRefreshListener() {
@Override
public void refreshing() {
// do something when refresh starts
} @Override
public void completeRefresh() {
// do something when refresh complete
}
});

在refreshing()方法中调用请求数据方法。completeRefresh()不用做什么操作。在请求接口成功后

调用mRefreshLayout.finishRefreshing();来停止刷新,跟swipeRefreshLayout全然一样

遗憾的是这个库没有设置加入依赖的方法,不能直接加入依赖来用,所以要用的话须要集成到项目中

以下来看我的集成结构图

将源代码下载下来,集成也非常easy,大家试试吧,今天的学习就到这咯

Android学习之两款下拉刷新库分享的更多相关文章

  1. Android学习之listview的下拉刷新、上拉载入

    本例是在上例的基础上完成的.本例实现的listview上拉载入.下拉刷新功能,是在开源网站上别人写好的listview,主要是对listview的控件进行重写,添加了footer和header. 1. ...

  2. Android几种强大的下拉刷新库

    BeautifulRefreshLayout 众多优秀的下拉刷新(除了我写的之外T_T) 说起下拉刷新,好像经历一段历史的洗礼... (1)在我刚学android的时候,用的是XListView,在g ...

  3. Android UI--自定义ListView(实现下拉刷新+加载更多)

    Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就 ...

  4. Android-PullToRefresh下拉刷新库基本用法

    How:(使用) 转自:http://blog.csdn.net/hantangsongming/article/details/42490277 PullToRefresh是一套实现非常好的下拉刷新 ...

  5. 【转载】 Android PullToRefresh (ListView GridView 下拉刷新) 使用详解

    Android下拉刷新pullToRefreshListViewGridView 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/3 ...

  6. Android PullToRefresh (ListView GridView 下拉刷新) 使用详解

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38238749,本文出自:[张鸿洋的博客] 群里一哥们今天聊天偶然提到这个git ...

  7. Android PullToRefresh (ListView GridView 下拉刷新) 使用详解 (转载)

    最近项目用到下拉刷新,上来加载更多,这里对PullToRefresh这控件进行了解和使用. 以下内容转载自:http://blog.csdn.net/lmj623565791/article/deta ...

  8. Android之RecyclerView轻松实现下拉刷新和加载更多

    今天研究了下RecyclerView的滑动事件,特别是下拉刷新和加载更多事件,在现在几乎所有的APP显示数据列表时都用到了.自定义RecyclerView下拉刷新和加载更多听上去很复杂,实际上并不难, ...

  9. Android自定义控件之仿美团下拉刷新

    美团的下拉刷新分为三个状态: 第一个状态为下拉刷新状态(pull to refresh),在这个状态下是一个绿色的椭圆随着下拉的距离动态改变其大小. 第二个部分为放开刷新状态(release to r ...

随机推荐

  1. GTID数据库备份

    rhel6系统中,mysql 5.6复制新特性下主从复制配置[基于GTID] 1.mysql5.6在复制方面的新特性: (1).支持多线程复制:事实上是针对每个database开启相应的独立线程,即每 ...

  2. PHP中调用外部命令的方法

    在PHP中调用外部命令,可以用如下三种方法来实现: 方法一:用PHP提供的专门函数(四个): PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), she ...

  3. STL - 迭代器 - 安插型迭代器

    list<, , , , , , , , }; cout << "** collection 1: **" << endl; ContainerUti ...

  4. ASP.NET MVC中权限控制的简单实现

    1.重写AuthorizeAttribute类,用自己的权限控制逻辑重写AuthorizeCore方法 public class MyAuthorizeAttribute : AuthorizeAtt ...

  5. Win8多平台引用配置

    之前移植过DLNA的库,这个库是C++写的,然后我们的项目是C#的.接着很郁闷的事情发生了,主项目引用一个C#的DLL,然后这个DLL引用这个C++/CX封装的库.如果有C++的源代码的话,做项目依赖 ...

  6. Spring 事务传播行为

    事务传播行为 指定是Spring中一个事务方法调用另一个事务方法时.处理的行为 使用方式: @Transactional(propagation=Propagation.REQUIRED) 事务的使用 ...

  7. mysql优化三

    1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一 ...

  8. 如何用php启动exe程序,并在进程中查看?

    function query_process($service) { /* **查看WINDOWS系统进程列表,并查找指定进程是否存在 */ $tasklist = $_SERVER["WI ...

  9. mosquitto ---配置SSL/TLS

    在服务器电脑上面创建myCA文件夹, 如在/home/qa/ 文件夹下使用命令, mkdir myCA 然后执行以下命令,我们将创建并使用其他用户没有权限访问的目录. sudo chmod 700cd ...

  10. Linux平台上实现队列

    转载: http://my.oschina.net/sundq/blog/203600 Linux上目前有两种事件通知方式,一种是线程条件变量,一种是利用eventfd实现事件通知,下面介绍一下利用这 ...