- 基本原理
- 注意事项
- 使用记录
- 控件完善
- 修改源码实现常见的下拉箭头那种下拉效果
- 实现上拉加载功能分页
- 数据加载优化及刷新的两级缓存
基本原理
占坑待填
注意事项
- SwipeRefreshLayout 只能有一个直接子View,可能是一个ListView或一个Layout或其他需要刷新的组件。见下使用记录一
- setOnRefreshListener 用于监听刷新的动作。SwipeRefreshLayout 下拉,就会有刷新的效果出来,触发该监听。
- 如果需要一个刷新的动画,setRefreshing(true), 停: setRefreshing(false)
- 如果要禁用刷新动画和手势响应,ssetEnable(false), 恢复setEnable(true)
- SwipeRefreshLayout进度条在要刷新组件(SwipeRefreshLayout 只有一个子view,因此也在SwipeRefreshLayout顶部)的顶部
如下图两个箭头所示,SwipeRefreshLayout。当然基本都在第一个item的位置,.另外手指向下滑动时,被滚动组件并不会随之向下滑动。这一点我个人很不习惯。
- SwipeRefreshLayout会强制填充整个父容器,对其设置layout_height 和 layout_width无效,如果要在当前布局中显示其他非要被刷新的组件,则需要给SwipeRefreshLayout外套一个父容器。亦或我们在adapterView内使用addHeadView来添加一个头。
- 还有一些设置屏幕下拉触发下拉刷新距离、圆圈背景、圆圈大小。都是可以的设置,参考android 文档
- 默认是不带有上拉加载的动能,后面将会完善这个功能。
使用记录
- 正如下方代码所示,SwipeRefreshLayout 中多添加了一个TextView,结果页面上只有一个TextView没有显示listview,
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="textview"
android:textSize="15sp"/>
<ListView
android:id="@+id/lv_swipe_volley"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</ListView>
</android.support.v4.widget.SwipeRefreshLayout>
控件完善
修改源码实现常见的下拉箭头那种下拉效果
Android修改v4的SwipeRefreshLayout源码实现自定义下拉效果
实现上拉加载功能(分页)
数据加载优化及刷新的两级缓存
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0606/3007.html