Android SwipeRefreshLayout控件

1. SwipeRefreshLayout用法

SwipeRefreshLayout是一个很好的下拉刷新控件。

首先需要在布局文件中,把RecyclerView放在SwipeRefreshLayout里面




    


setOnRefreshListener()方法里添加刷新事件。

final SwipeRefreshLayout swipeRefreshLayout = findViewById(R.id.swipe_refresh_layout);
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            recyclerView.postDelayed(new Runnable() {
                @Override
                public void run() {
                    adapter.refresh();
                    swipeRefreshLayout.setRefreshing(false);
                }
            }, 1000);
        }
    });

显示如下
Android SwipeRefreshLayout控件_第1张图片

2. 主要方法

  • setSize(int size),设置进度View样式的大小,只有两个值DEFAULTLARGE,表示默认和较大
  • setColorSchemeResources(int… colorResIds),设置下拉进度条的颜色主题,参数为可变参数,并且是资源id,最多设置四种不同的颜色,每转一圈就显示一种颜色。
  • setProgressBackgroundColorSchemeResource(int colorRes),设置下拉进度条的背景颜色,默认白色。
  • setProgressViewOffset(boolean scale, int start, int end),设置动画样式下拉的起始点和结束点,scale设置是否需要放大或者缩小动画
  • setProgressViewEndTarget(boolean scale, int end),设置动画样式下拉的结束点
  • setRefreshing(boolean refreshing),设置刷新状态,true表示正在刷新,false表示取消刷新。
  • isRefreshing(),判断当前的状态是否是刷新状态。
  • setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener),设置监听,需要重写onRefresh()方法,顶部下拉时会调用这个方法,在里面实现请求数据的逻辑,设置下拉进度条消失等等。

修改进度条颜色和背景,设置下拉起始和结束点

swipeRefreshLayout.setColorSchemeResources(R.color.blue, R.color.green, R.color.colorAccent);
swipeRefreshLayout.setProgressBackgroundColorSchemeResource(R.color.yellow);
swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);
swipeRefreshLayout.setProgressViewOffset(false, 0, 400);
swipeRefreshLayout.setProgressViewEndTarget(false, 200);

显示如下
Android SwipeRefreshLayout控件_第2张图片

你可能感兴趣的:(Android,Material,Design)