先说说废话
实现下拉刷新可以有很多种方式,这里介绍一下官方的SwipeRefreshLayout,看名字就知道是一个Layout(果然废话),笔者觉得使用起来非常简单~~至于好不好看就看个人口味了~~~
下面先上一张效果图:
使用方法
上图就是效果图了,虽然不是动图。但是请各位自行脑补一下刷新图标转动的画面哈。
先看一下布局代码:
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/mSwipeBikeFriendRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/lv_friends"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</android.support.v4.widget.SwipeRefreshLayout>
我们一开始看到这个SwipeRefreshLayout就可以猜到它的基本使用方法,没错的就是用SwipeRefreshLayout包住需要下拉刷新效果的控件。然后这个时候把程序运行一下发现已经有下拉刷新的视觉效果了。
虽然有了下拉刷新的视觉效果但是我们还是需要知道下拉刷新的回调方法,不然就无法在用户下拉的时候更新列表了。
首先用findViewById把SwipeRefreshLayout给Find出来,然后使用:
private void initEvent(){
mSwipeBikeFriendRefresh.setOnRefreshListener();
}
该方法把实现了OnRefreshListener接口的类的实例传进去。
在下拉刷新的时候就会回调该方法:
@Override
public void onRefresh() {}
我们就可以在onRefresh里面执行相关的刷新逻辑。
在刷新完成之后我们只需要调用setRefreshing设置为false,就会停止刷新的视觉效果。