最近项目里需要一个几近万能的recyclerview,既可以下拉刷新上拉加载,同时带特效,又可以每个item左右滑动,进行删除或者编辑。于是就在网上搜了一个牛人写的工具。打算用到项目中。他给的关键类就是SwipeMenuRecyclerView。 但是同时也有好多接口。时间短,不可能一下子全搞明白。现在最最最关键的是搞清楚要怎么用!先摘一些下周要用到的功能!
1 上拉刷新下拉加载的使用
上拉刷新下拉加载的动效
上拉刷新下拉加载的触发回调
2 左滑右滑的界面设置方式
左滑右滑的动作触发回调代码
3 item上下位置改变的功能
4 加headerView 是怎么加的?
先考虑这几点吧。我看作者描述,似乎这个自定义的view是可实现这几个功能的。具体请详查网址:RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新上拉加载.
那么我们开始亲测一下,探究其功能吧。先从最简单的开始。先用他表现一个最简单的样式:
首先我写了一个最最最简单的功能,就是展示:
因为刚刚学习了ConstrainsLayout, 所以我无论是activity最外面的布局还是item布局都采用了这个 constrainsLayout, 如果大家发现自己无论如何都不能使item宽度填充整个listview 的话,请在adapter中初始化view 的时候使用 view = mLayoutInflater.inflate(R.layout.XXXX, parent, false);第三个参数是false!
上拉加载下拉刷新,以及涉及的动态图片设置。
上拉加载:
//设置上拉加载功能
//采用自带的关于加载更多的view。
recyclerView.useDefaultLoadMore();
//设置这一行,等滑动到底部的时候,才会出现加载更多的界面。
recyclerView.loadMoreFinish(false, true);
//设置加载更多时的回调。
recyclerView.setLoadMoreListener(new SwipeMenuRecyclerView.LoadMoreListener() {
@Override
public void onLoadMore() {
//添加数据
adapter.addDatalist(makeData(0));
//通知adapter
adapter.notifyDataSetChanged();
}
});
用默认的页脚样式,下拉加载更更多实现。
在上面的代码中,有一个很重要的方法决定到底要不要继续加载,那就是:loadMoreFinish()这个方法。这个方法很重要,决定了默认的最下面的加载更多View 到底怎么展示
public final void loadMoreFinish(boolean dataEmpty, boolean hasMore).
如果dataEmpty = true 的话,list最下方的页脚loading直接消失。因为没有数据了没必要出现。
同时dataEmpty 与 hasMore 综合决定了到底调不调用监听器中的onLoadMore()方法。 所以写的时候应当注意,这几个条件。
用自定义的页脚样式,下拉加载更多实现。
上面的代码用的是默认的样式表示下拉加载更多。那如果我们需要自己自定义呢?gitHub上给的例子实则有问题。只好自