mylhyl / Android-CommonRefreshLayout

支持AbsListView、RecycleView、WebView的下拉刷新上拉加载

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android-CommonRefreshLayout

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

####特点

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

####效果图

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

    <com.mylhyl.crlayout.SwipeRefreshListView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:crl="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/swipeRefresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:listSelector="@drawable/selector_list"
        crl:load_text="数据正在加载中"
        crl:load_indeterminate_drawable="@drawable/footer_progressbar"
        tools:context=".app.ListViewFragment" />

设置上拉加载,更多方法见 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);
  • 方式二:xml属性配置
        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.4'

如果使用eclipse

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

下载APK体验

更新日志

2.4 修复第二次setAdapter崩溃的问题,修改已知BUG

2.1 修复空数据视图不显示

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 初始版本

About

支持AbsListView、RecycleView、WebView的下拉刷新上拉加载


Languages

Language:Java 100.0%