本文为菜鸟窝作者刘婷的连载。”商城项目实战”系列来聊聊仿”京东淘宝的购物商城”如何实现。
SwipeRefreshLayout 是 Google 公司推出的用于下拉刷新的控件,在 SDK Version 19.1之后, SwipeRefreshLayout 已经被放到了 SDK 中,作为官方的下拉刷新控件,SwipeRefreshLayout 也是备受开发者的关注。
SwipeRefreshLayout 的相关方法介绍
SwipeRefreshLayout 继承于 ViewGroup ,在属性方面和基本的控件没有什么特别,所以就主要介绍 SwipeRefreshLayout 的一些重要的相关方法。
1. setColorSchemeResources( int… colorResIds )
setColorSchemeResources() 方法在使用 SwipeRefreshLayout 中经常使用,该方法是用于设置下拉进度条的颜色主题,参数为可变参数,并且是 color 的资源 id 值,可以设置多种不同的颜色,每转一圈就显示一种颜色,使得下拉刷新的效果美化了不少。方法的使用很简单,如下。
swipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light);
2. setDistanceToTriggerSync( int distance )
需要传入 int 型参数 distance ,该参数表示的手势下拉的距离,所以这个方法的作用也就明了了,就是设置手势滑动的距离的多少来开始响应下拉刷新事件,下拉的距离有个默认值,也就是64。
private static final int DEFAULT_CIRCLE_TARGET = 64;
3. setOnRefreshListener()
这个方法看名字就可以知道是用于设置监听的,和 setOnClickListener() 类似,但是里面需要重写的是 onRefresh() 方法,顶部下拉时会调用这个方法,在里面实现请求数据的逻辑,设置下拉进度条消失等等。
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
//实现请求数据的逻辑,设置下拉进度条消失等等
}
});
4. setRefreshing(boolean refreshing)
这个方法中传入的是个 boolean 类型的参数,是用于设置刷新状态的,其中传入的参数 refreshing 为 true表示正在刷新,false 则表示取消刷新