SwipeRefreshLayout是一个下拉刷新控件,几乎可以包裹一个任何可以滚动的内容(ListView、GridView、ScrollView、RecyclerView),可以自动识别垂直滚动手势。使用起来非常方便,下面我们就看一下如何使用这个控件
- 将需要下拉刷新的控件包裹起来(在xml文件中配置)
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/refresh_layout">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerView">
</android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>
- 在Java代码中设置相关属性
//设置下拉出现小圆圈是否是缩放出现,出现的位置,最大的下拉位置
refreshLayout.setProgressViewOffset(true,50,200);
//设置下拉圆圈的大小,两个值 LARGE大,DEFAULT默认
refreshLayout.setSize(SwipeRefreshLayout.DEFAULT);
//设置下拉圆圈上的颜色:蓝色、绿色、橙色、红色
refreshLayout.setColorSchemeResources(
android.R.color.holo_blue_dark,
android.R.color.holo_green_dark,
android.R.color.holo_orange_dark,
android.R.color.holo_red_dark
);
//通过setEnabled设置禁用下拉刷新
refreshLayout.setEnabled(false);
//设置下拉圆圈的背景
refreshLayout.setProgressBackgroundColor(R.color.colorAccent);
//设置手势下拉刷新的监听,一般这里重新请求一下接口
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
//刷新动画开始后回调到此方法
Toast.makeText(RefreshActivity.this, "刷新完成", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//停止刷新,圆圈消失
refreshLayout.setRefreshing(false);
}
},5000);
}
});
这样基本的配置就配置好了,就可以使用了