XAdapter 一个支持 add 多个 header 和 footer,并且支持下拉刷新上拉加载的 recyclerViewAdapter

来源:互联网 发布:蜂群算法 编辑:程序博客网 时间:2024/06/06 19:07

XAdapter

项目地址:7449/XAdapter
简介:XAdapter 一个支持 add 多个 header 和 footer,并且支持下拉刷新上拉加载的 recyclerViewAdapter
Support for the pull-down refresh loading and the addition of multiple header and footer RecyclerViewAdapter

Blog:https://7449.github.io/Android_XAdapter/

Screenshots

https://raw.githubusercontent.com/7449/XAdapter/master/xadapter.gif

中文文档

gradle

compile 'com.xadapter:xadapter:0.1.7'

Dividing line

Built a simple example XDividerItemDecoration

tips

It should be noted that, initXData () is not mandatory, only when the beginning of the RecyclerView need to have a data List must call initXData ()

Full example

    recyclerView.setAdapter(            xRecyclerViewAdapter                    .initXData(mainBeen)                    .addRecyclerView(recyclerView)                    .setLayoutId(R.layout.item)                    .setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader)                    .setLoadingMoreProgressStyle(ProgressStyle.BallRotate)                    .setImageView(R.drawable.iconfont_downgrey)                    .setHeaderBackgroundColor(R.color.colorBlack)                    .setFooterBackgroundColor(R.color.colorBlack)                    .setHeaderTextColor(R.color.textColor)                    .setFooterTextColor(R.color.textColor)                    .setPullRefreshEnabled(true)                    .setLoadingMoreEnabled(true)                    .addHeaderView(LayoutInflater.from(this).inflate(R.layout.item_header_1, (ViewGroup) findViewById(android.R.id.content), false))                    .addHeaderView(LayoutInflater.from(this).inflate(R.layout.item_header_2, (ViewGroup) findViewById(android.R.id.content), false))                    .addHeaderView(LayoutInflater.from(this).inflate(R.layout.item_header_3, (ViewGroup) findViewById(android.R.id.content), false))                    .addFooterView(LayoutInflater.from(this).inflate(R.layout.item_footer_1, (ViewGroup) findViewById(android.R.id.content), false))                    .addFooterView(LayoutInflater.from(this).inflate(R.layout.item_footer_2, (ViewGroup) findViewById(android.R.id.content), false))                    .addFooterView(LayoutInflater.from(this).inflate(R.layout.item_footer_3, (ViewGroup) findViewById(android.R.id.content), false))                    .onXBind(this)                    .setOnLongClickListener(this)                    .setOnItemClickListener(this)                    .setLoadingListener(this)                    .setFooterListener(this)                    .setRefreshing(true)    );

onXBind
Achieve data display

@Overridepublic void onXBind(XViewHolder holder, int position, MainBean mainBean) {    holder.setTextView(R.id.tv_name, mainBean.getName());    holder.setTextView(R.id.tv_age, mainBean.getAge() + "");}

emptyView

Whether to display manually determined by the user's own network exceptions or data is empty when the call xRecyclerViewAdapter.isShowEmptyView (); specific examples of simple

 recyclerView.setAdapter(                xRecyclerViewAdapter                        .initXData(mainBean)                        .setEmptyView(findViewById(R.id.emptyView))                        .addRecyclerView(recyclerView)                        .setLayoutId(R.layout.item)   );

pull to refresh and load more

The default is not open, if necessary, please manually open, and addRecyclerView

            xRecyclerViewAdapter                .initXData(mainBean)                .setLayoutId(R.layout.item)                .addRecyclerView(recyclerView)                .setPullRefreshEnabled(true)                .setPullRefreshEnabled(true)                .setLoadingListener(new XBaseAdapter.LoadingListener() {                    @Override                    public void onRefresh() {                    }                    @Override                    public void onLoadMore() {                    }                })

When the drop-down refresh is complete

It is up to the user to choose whether the load fails or is successful

xRecyclerViewAdapter.refreshComplete(HeaderLayout.STATE_DONE);

When the pull-up is complete

It is up to the user to choose whether the load fails or is successful

xRecyclerViewAdapter.loadMoreComplete(FooterLayout.STATE_NOMORE);

addHeader addFooter

    xRecyclerViewAdapter     .addHeaderView(LayoutInflater.from(this).inflate(R.layout.item_header_1, (ViewGroup) findViewById(android.R.id.content), false))     .addFooterView(LayoutInflater.from(this).inflate(R.layout.item_footer_1, (ViewGroup) findViewById(android.R.id.content), false))

MultipleAdapter

Load the animation

XAdapter's refresh header and the bottom are derived from the XRecyclerView, so support for XRecyclerViewsupport animation, and the head and the bottom of the extension, you can set the background color, font color.

               xRecyclerViewAdapter                    .initXData(mainBeen)                    .addRecyclerView(recyclerView)                    .setLayoutId(R.layout.item)                    .setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader)                    .setLoadingMoreProgressStyle(ProgressStyle.BallRotate)                    .setImageView(R.drawable.iconfont_downgrey)                    .setHeaderBackgroundColor(R.color.colorBlack)                    .setFooterBackgroundColor(R.color.colorBlack)                    .setHeaderTextColor(R.color.textColor)                    .setFooterTextColor(R.color.textColor)

Thanks

https://github.com/jianghejie/XRecyclerView

0 0
原创粉丝点击