SwipeRefreshLayout感觉是Google在吸收了PullToRefresh-ListView,ActionBarPullToRefresh之后实现的google风格的刷新控件,那花花绿绿的穿越条,浓浓的google味。
迁移到Android studio后就必须使用AppCompat_v7 21+ ,切换了之后你就会发现一些有趣的变化,比如说这个SwipeRefreshLayout,就进化成了一个圆。
那么就来看下怎么使用SwipeRefreshLayout吧!
- 首先需要在布局里面声明:
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipe_refresh_container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#E4E4E4"> </android.support.v4.widget.SwipeRefreshLayout>
- 然后需要在代码中初始化控件
swipeRefreshLayout.setColorSchemeResources(android.R.color.holo_purple, android.R.color.holo_blue_bright, android.R.color.holo_orange_light, android.R.color.holo_red_light); swipeRefreshLayout.setOnRefreshListener(this);
这里圆圈设置几个替换显示的颜色,然后设置监听,实现implements SwipeRefreshLayout.OnRefreshListener接口的onRefresh方法
@Override public void onRefresh() { adapter.sync(); }
这样的话已经能够下拉的时候显示SwipeRefreshLayout控件了,但是现实的需求中一般都是加载网络请求,那么也很简单,在请求start的时候SwipeRefreshLayout.setRefreshing(true);在请求完成的时候调用 swipeRefreshLayout.setRefreshing(false);
就这么多吗?是的,就怎么简单,再也不用忍受ActionBarPullToRefresh的三个依赖包,和在AppCompat_v7 21中兼容的问题。
下面再说一个问题,
android.support.v4.widget.SwipeRefreshLayout
可以不必使用在跟布局中,但是它内部的控件必须只有一个,而且要是可以滑动的,比如listview,Scrollview,如果遇到滑动异常可以参考下面的链接:
https://yassirh.com/2014/05/how-to-use-swiperefreshlayout-the-right-way/
时间: 2024-11-06 22:45:07