Skip to content

一个Android 下拉刷新,上拉加载更多,侧滑显示菜单

Notifications You must be signed in to change notification settings

Jayqiu/RefreshSwipeRecyclerview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 

Repository files navigation

RefreshSwipeRecyclerview

一个Android ListView、GridView、瀑布流的 下拉刷新,上拉加载更多,侧滑显示菜单.

效果图

 

演示APK

演示apk下载 

引用

aar下载  将下载的aar文件放在项目的libs中 你的build.gradle添加

repositories {
        flatDir {
            dirs 'libs'   // aar     目录
        }
    }
compile 'com.android.support:recyclerview-v7:23.0.0'
compile(name:'rsrecyclerview-1.0.0',ext:'aar')  

头部底部添加

// 添加/删除 头部View (支持多个) mRecyclerView.addHeaderView() 和 .removeHeaderView()

// 添加/删除 底部View (支持多个) mRecyclerView.addFooterView() 和 .removeFooterView()

Adapter(BaseRvAdapter)适配

继承BaseRvAdapter

/**
     * 取得ItemView的布局文件
     *
     * @return
     */
    public abstract int getItemLayoutID(int viewType);
    /**
     * 绑定数据到Item的控件中去
     *
     * @param holder
     * @param bean
     */
    protected abstract void onBindDataToView(RvCommonViewHolder holder, T bean, int position);
    

SwipeMenuCreator 设置滑动删除

mRecyclerView.setSwipeMenuCreator(swipeMenuCreator);
 /**
     * 菜单创建器。在Item要创建菜单的时候调用。
     */
    private SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() {
        @Override
        public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) {
            int width = dip2px(ActRefreshGridView.this, 80);

            // MATCH_PARENT 自适应高度,保持和内容一样高;也可以指定菜单具体高度,也可以用WRAP_CONTENT。
            int height = ViewGroup.LayoutParams.MATCH_PARENT;


            // 添加右侧的,如果不添加,则右侧不会出现菜单。
            {
                SwipeMenuItem deleteItem = new SwipeMenuItem(ActRefreshGridView.this)
                        .setBackgroundColor(getResources().getColor(R.color.colorAccent))
                        .setText("删除") // 文字,还可以设置文字颜色,大小等。。
                        .setTextColor(Color.WHITE)
                        .setWidth(width)
                        .setHeight(height);
                swipeRightMenu.addMenuItem(deleteItem);// 添加一个按钮到右侧侧菜单。

            }
        }
    };
    //设置滑动按钮点击监听
    mRecyclerView.setSwipeMenuItemClickListener(new OnSwipeMenuItemClickListener() {
            @Override
            public void onItemClick(Closeable closeable, int adapterPosition, int menuPosition, @RefreshRecyclerView.DirectionMode int direction) {
                Toast.makeText(ActRefreshGridView.this, adapter.getData().get(adapterPosition), Toast.LENGTH_SHORT).show();
                closeable.smoothCloseMenu();
            }
        });

下拉刷新、上拉加载更多

 下拉刷新监听
 mRsRecyclerView.setOnPullRefreshListener(...)
 
 下拉加载完成
 mRsRecyclerView.pullRefreshComplete();
 
 上拉加载更多监听
 mRsRecyclerView.setOnLoadMoreListener(...)
 
 上拉加载完成(解决数据请求慢导致数据重复或分页数据错乱)
 mRsRecyclerView.loadMoreComplete();
 
 是否还有更多数据(true 有更多数据、false 加载完成)
 mRsRecyclerView.setLoadMoreEnabled(true\false);
 
 上拉加载数据出错
 mRsRecyclerView.loadMoreError();

自定义配置

参数 类型 默认值 说明
v_divider reference / color 全局分割线divider
rv_dividerVertical reference / color 垂直分割线divider
rv_dividerHorizontal reference / color 水平分割线divider
rv_dividerHeight dimension 1px 全局分割线size
rv_dividerVerticalHeight dimension 1px 垂直分割线size
rv_dividerHorizontalHeight dimension 1px 水平分割线size
rv_isNotShowGridEndDivider boolean false 是否不显示Grid最后item的分割线
rv_itemViewBothSidesMargin dimension itemView两边的边距(不会设置headerView和footerView的两边)
rv_emptyView reference emptyView id
rv_isEmptyViewKeepShowHeadOrFooter boolean false 显示EmptyView时,是否保留显示已设置的HeadView和FooterView
rv_layoutManager linear / grid / staggeredGrid 布局类型
rv_layoutManagerOrientation horizontal / vertical vertical 布局方向
rv_spanCount integer 2 格子数量,rv_layoutManager=grid / staggeredGrid时有效
rv_headerDividersEnabled boolean false 是否启用headView中的分割线
rv_footerDividersEnabled boolean false 是否启用footerView中的分割线

Thanks

RefreshSwipeRecyclerview 主要的是对 FamiliarRecyclerViewSwipeRecyclerView 的一个整合修改 代码暂时还没有提交到Jcenter管理、希望需要的小伙伴clone代码直接引用 rsrecyclerview Module

About

一个Android 下拉刷新,上拉加载更多,侧滑显示菜单

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages