首页 > 代码库 > Android全新的SwipeRefreshLayout控件教程

Android全新的SwipeRefreshLayout控件教程

SwipeRefreshLayout感觉是Google在吸收了PullToRefresh-ListView,ActionBarPullToRefresh之后实现的google风格的刷新控件,那花花绿绿的穿越条,浓浓的google味。



迁移到Android studio后就必须使用AppCompat_v7 21+ ,切换了之后你就会发现一些有趣的变化,比如说这个SwipeRefreshLayout,就进化成了一个圆。


那么就来看下怎么使用SwipeRefreshLayout吧!

  • 首先需要在布局里面声明:

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipe_refresh_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#E4E4E4">
</android.support.v4.widget.SwipeRefreshLayout>


  • 然后需要在代码中初始化控件

  swipeRefreshLayout.setColorSchemeResources(android.R.color.holo_purple, android.R.color.holo_blue_bright, android.R.color.holo_orange_light,
                android.R.color.holo_red_light);
        swipeRefreshLayout.setOnRefreshListener(this);
这里圆圈设置几个替换显示的颜色,然后设置监听,实现implements SwipeRefreshLayout.OnRefreshListener接口的onRefresh方法
 @Override
    public void onRefresh() {
        adapter.sync();
    }


这样的话已经能够下拉的时候显示SwipeRefreshLayout控件了,但是现实的需求中一般都是加载网络请求,那么也很简单,在请求start的时候SwipeRefreshLayout.setRefreshing(true);在请求完成的时候调用 swipeRefreshLayout.setRefreshing(false);

就这么多吗?是的,就怎么简单,再也不用忍受ActionBarPullToRefresh的三个依赖包,和在AppCompat_v7 21中兼容的问题。


下面再说一个问题,

android.support.v4.widget.SwipeRefreshLayout
可以不必使用在跟布局中,但是它内部的控件必须只有一个,而且要是可以滑动的,比如listview,Scrollview,如果遇到滑动异常可以参考下面的链接:
https://yassirh.com/2014/05/how-to-use-swiperefreshlayout-the-right-way/

滑动问题



Android全新的SwipeRefreshLayout控件教程