以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆。感觉麻烦死了。今天学习了SwipeRefreshLayout 的用法,来分享一下,有说的不对的地方请大家指点。
SwipeRefreshLayout 是Google在support v4 19.1版本的library更新的一个下拉刷新组件,也就是说 开发的时候把Android版本调到4.4或者以上才会有这个。
先来看看效果图
再来看看布局文件里的代码(我这里放的是一个ListView 当然也可以放其他控件 只要你高兴就好)
<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/main_srl_bloglist" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@+id/main_lv_bolg_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:divider="#00000000" android:dividerHeight="5dp"></ListView> </android.support.v4.widget.SwipeRefreshLayout>
最后来看看Activiy里的代码吧(这里我用的AndroidAnnotations 所以没有写 findViewById 哈哈)
//设置刷新时动画的颜色,可以设置4个 mSwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_red_light, android.R.color.holo_orange_light, android.R.color.holo_green_light); mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { mIndex=1; mBlogList.clear(); loadBlogData(); } });
在onRefresh 里调用获取数据的方法就好了 数据获取完毕 别忘了 修改状态
mSwipeRefreshLayout.setRefreshing(false);
哈哈 以前要写成吨的代码 用SwipeRefreshLayout 就这几行代码 是不是很方便。