利用SwipeRefreshLayout实现类似知乎客户端的一打开界面就自动刷新的效果

前言

最近在学习下拉刷新的过程中,遇到了一个需求:实现一个图书馆藏的首页推荐页,为了追求良好的用户体验,要求刚进入页面时就开始刷新,如下图:


刚进入就刷新

为了实现这个效果使用了SwipeRefreshLayout这个控件,接下来来说如何实现。

实现步骤

  • 在布局文件中添加该控件
<android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/library_refresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </android.support.v7.widget.RecyclerView>

    </android.support.v4.widget.SwipeRefreshLayout>
  • 在Activity中初始化这个控件
private void initSwipeRefresh() {
        swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.library_refresh);

        // 设置颜色属性的时候一定要注意是引用了资源文件还是直接设置16进制的颜色,因为都是int值容易搞混
        // 设置下拉进度的背景颜色,默认就是白色的
        swipeRefreshLayout.setProgressBackgroundColorSchemeResource(android.R.color.white);
        // 设置下拉进度的主题颜色
        swipeRefreshLayout.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary, R.color.colorPrimaryDark);

        listener = new SwipeRefreshLayout.OnRefreshListener() {
            public void onRefresh() {
                //TODO
                //在这执行你的操作
            }
        };

        swipeRefreshLayout.setOnRefreshListener(listener);
    }
  • 在activity的onCreate()方法中执行
swipeRefreshLayout.post(new Runnable() {
            @Override
            public void run() {
                swipeRefreshLayout.setRefreshing(true);
            }
        });
listener.onRefresh();   //这句话务必执行

通过以上的代码即可在进入首页时自动刷新了。

问题

那应该如何关闭这个刷新动过呢?

在需要关闭的地方执行以下方法即可

swipeRefreshLayout.post(new Runnable() {
        @Override
       public void run() {                         
            swipeRefreshLayout.setRefreshing(false);
       }
});

需要注意的地方

想要在界面一加载的时候出现更新效果,直接调用setRfreshing(true)是出不来效果的,务必需要在

swipeRefreshLayout.setRefreshing(true);

后添上一句
listener.onRefresh();

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容