类似这种下拉刷新的界面做 Android 应用的时候还是经常遇到的。这个的实现方法也有很多种,相信只要写过多年 Android 的程序员估计也造过做这个功能的轮子。不过本文就是记录一下 Support Lib 中提供的 SwipRefreshLayout 来快速实现这个需求的简单 Demo。由于一般都会和 ListView 配合使用,而现在往往会使用性能更好的 RecyclerView ,所以这里就用 RecyclerView 来做这个 Demo。

首先布局大概是这样的

<android.support.v4.widget.SwipeRefreshLayout  
    android:id="@+id/swiper"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical" />
</android.support.v4.widget.SwipeRefreshLayout>  

然后就是去你的 activity 或者 fragment 里面绑定这两个 View。这里略过,直接贴核心逻辑代码。

swipview=(SwipeRefreshLayout)findViewById(R.id.swiper);
swipview.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {  
    @Override
    public void onRefresh() {
        reloadData();
    }
});
private void reloadData(){
//此处掠过数据加载逻辑
...
//加载完成后改变状态
swipview.setRefreshing(false);
}

就是这么简单粗暴好用。没有任何干货,单纯就是一些代码片段,仅做记录。