洞察探索open banking如何通过小程序容器技术助力金融企业实现数据安全和数字化转型
646
2022-10-24
SWPullRecyclerLayout 打造独一无二的刷新框架
SWPullRecyclerLayout
效果图
交流群
介绍
详情请看:http://blog.csdn-/sw950729/article/details/60478901
header = LayoutInflater.from(this).inflate(R.layout.header, null); footer = LayoutInflater.from(this).inflate(R.layout.footer, null); recycler.addHeaderView(header, 100);// recycler.addFooterView(footer, 100); recycler.addCircleProgressView(100); NumAdapter adapter = new NumAdapter(this, list); recycler.setMyRecyclerView(new LinearLayoutManager(this), adapter);// recycler.setShowHeaderAndFooter(false); recycler.addOnTouchUpListener(this);
setShowHeaderAndFooter是判断是否需要刷新和加载,默认为true。若为false,则和普通列表无区别。
最新版本
compile 'com.angel:SWPullRecyclerLayout:1.1.8' 添加了自定义的footer compile 'com.angel:SWPullRecyclerLayout:1.1.7' 解决了多指侧滑显示的bug compile 'com.angel:SWPullRecyclerLayout:1.1.6' 完美的解决了与Coordinatorlayout冲突问题 compile 'com.angel:SWPullRecyclerLayout:1.1.5' 加入了侧滑删除控件 compile 'com.angel:SWPullRecyclerLayout:1.1.3' 修复了一些bug compile 'com.angel:SWPullRecyclerLayout:1.1.2' 修复了SWRecyclerAdapter的bug compile 'com.angel:SWPullRecyclerLayout:1.1.1' 修复了刷新加载回滚的bug compile 'com.angel:SWPullRecyclerLayout:1.1.0' 加入了SWRecyclerAdapter compile 'com.angel:SWPullRecyclerLayout:1.0.0' 初稿
注意事项
SWPullRecyclerLayout已经处理了与Coordinatorlayout的问题。不过SWPullScrollerLayout并没有去处理此类问题,所以如若使用SWPullScrollerLayout,请讲它当作最外层的view使用。 因为我做了Coordinatorlayout的处理,所以项目无需在次依赖design包和Recyclerview的包。
SWRecyclerAdapter的使用介绍
目前adpter我给注入了textview 、ImageView、button,后续我会更新一篇关于独一无二的万能适配器的文章 请关注http://blog.csdn-/sw950729 的更新。
public class NumAdapter extends SWRecyclerAdapter
SWDiffCallBack
使用介绍请看:http://blog.csdn-/sw950729/article/details/70052693
newlist = new ArrayList<>();for (int i = 1; i < list.size(); i++) { newlist.add(list.get(i) + ""); }newlist.add(5,list.size() + j + "");j++;//普通刷新// list=newlist;// adapter.setList(newlist);// adapter.notifyDataSetChanged();//强大的局部刷新DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new SWDiffCallBack(list, newlist), true);//利用DiffUtil.DiffResult对象的dispatchUpdatesTo()方法,传入RecyclerView的Adapter//别忘了将新数据给Adapterlist = newlist;adapter.setList(list);diffResult.dispatchUpdatesTo(adapter);
SWSlipeLayout
使用介绍请看:http://blog.csdn-/sw950729/article/details/71404281
SWPullScollerLayout
此控件是SWPullRecyclerLayout的升华版,SWPullRecyclerLayout是基于列表的刷新,准确的说是针对recyclerlayout的刷新和加载。而SWPullScrollerLayout是针对scrollview的刷新,即内部控件是任意的。关于SWPullScrollerLayout的使用方法和SWPullRecyclerLayout差不多,具体内容如下:
header = LayoutInflater.from(this).inflate(R.layout.header, null); footer = LayoutInflater.from(this).inflate(R.layout.footer, null); content = LayoutInflater.from(this).inflate(R.layout.scrollercontent, null); swPullScollerLayout.addHeaderView(header, 100); swPullScollerLayout.addFooterView(footer, 100); swPullScollerLayout.addContentView(content); swPullScollerLayout.addOnTouchUpListener(this);
如无法理解,可以-demo看demo源码。
关于
为了让更多的人理解recyclerview以及nestedscrolling机制而开发的嵌套滑动机制的刷新和加载。 如感觉使用良好,麻烦右上角star一下,谢谢。 如果遇到一些问题,或者有更好的建议,欢迎在Issues提出你的建议。我会参考,然后综合各种情况进行考虑是否需要添加进去。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~