SwipeRefreshLayout 上拉加载

7,106 阅读2分钟

Android-CommonRefreshLayout

基于SwipeRefreshLayout下拉刷新、上拉加载。支持的AbsListViewRecycleViewWebView

特点

  • 在布局layout中使用,支持xml属性
  • 支持自动下拉刷新,什么用呢?比如进入界面时,只需要调用autoRefresh()方法即可,显示上拉动画同时刷新回调onRefresh将会被调用
  • 上拉加载支持自定义View或设置加载文字、动画、加载完成
  • 轻松设置Adapter空数据视图,默认为TextView支持更文字,也可自定义View
  • 对于简单的界面,例如只有ListView可以继承 SwipeRefreshListFragment 轻松搞定

效果图

使用

仔细看listSelector属性,我们是支持的,效果见sample

    

设置上拉加载,更多方法见 LoadConfig

        LoadConfig loadConfig = swipeRefreshListView.getLoadConfig();
        loadConfig.setLoadText("set自定义加载");
        loadConfig.setIndeterminateDrawable(getResources().getDrawable(R.drawable.footer_progressbar));

或 xml属性配置,更多属生见attrs

            crl:load_text="数据正在加载中"
            crl:load_indeterminate_drawable="@drawable/footer_progressbar"

自定义上拉加载

        getSwipeRefreshLayout().setLoadLayoutResource(R.layout.swipe_refresh_footer);
        crl:load_layout="@layout/swipe_refresh_footer"
  • 方式三:继承重写getLoadLayoutResource()方法
        public class MySwipeRefreshGridView extends SwipeRefreshGridView {

            @Override
            protected int getLoadLayoutResource() {
                return R.layout.swipe_refresh_footer;
            }
        }

设置adapter空数据视图文字

        swipeRefreshListView.setEmptyText("数据呢?");

自定义adapter空数据视图

        ImageView emptyView = new ImageView(getContext());
        emptyView.setImageResource(R.mipmap.empty);
        swipeRefreshGridView.setEmptyView(emptyView);

注册ListView长按事件怎么办?好说好说提供了方法getScrollView(),既然能获取ListViewSwipeRefreshLayout是不是也可以获取到呢?答案是肯定的,方法getSwipeRefreshLayout,你可以随心所欲设置下拉圆圈的颜色、大小等。 关于更多公开方法见 ISwipeRefreshILoadSwipeRefresh

注意事项

setLoadAnimatorsetLoadLayoutResource方法须在setOnListLoadListener之前调用

使用Gradle构建时添加一下依赖即可:

compile 'com.mylhyl:commonrefreshlayout:2.0'

如果使用eclipse

只能clone源码,然后在 eclipse 中用library方式引用

下载APK体验

QQ交流群:435173211

更新日志

2.0 UI编辑支持预览

1.9 优化代码

1.8 优化加载更多显示效果

1.7 新增setEnabled禁用下拉刷新

1.6 新增加载完成,命名footer修改为load

1.5 优化SwipeRefreshWebViewautoRefresh方法

1.4 优化SwipeRefreshWebView显示下拉动画

1.3 增加autoRefresh(@ColorRes int... colorResIds)方法,指定动画颜色

1.2 修复滑动到底部会上拉加载多次

1.1 修改为recyclerview-v7:23.4.0

1.0 初始版本