翻翻git之---利用RecyclerView实现折叠效果 SectionedExpandableGridRecyclerView
来源:互联网 发布:js ul li 事件委托 编辑:程序博客网 时间:2024/04/29 06:49
转载请注明出处:王亟亟的大牛之路
今天也没有P1,因为年前酱油打多了,事情堆积到现在有点紧迫感了,快点给观众老爷上完聊我就去做事了!!
今天上的是一个可折叠的RecyclerView SectionedExpandableGridRecyclerView(名字好长)
先上下效果图:
因为是RecyclerView 那这些点击、折叠都是自己写的事件了,所以还是感谢作者!!!
how to use?
因为原作者没有做 jcenter下载那么我们就只能 把代码和资源文件都Copy进去了
这些都弄进去
那来看看是怎么使用的,把创建,初始化,调用这些事好好瞅瞅。
看看使用这个控件要传些什么
public SectionedExpandableLayoutHelper(Context context, RecyclerView recyclerView, ItemClickListener itemClickListener,int gridSpanCount)
需要传4个参数分别为:
Context context 上下文对象RecyclerView recyclerView 控件容器对象ItemClickListener itemClickListener 点击事件对象int gridSpanCount 每行显示多少个Item数
上面的GIF gridSpanCount传入的是3,再贴个传入2的给大家看看
对了再说下XML的引用
<android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recycler_view"/>
只是当普通的RecyclerView使用就好了
那数据源怎么操作呢?
ArrayList<Item> arrayList = new ArrayList<>(); arrayList.add(new Item("iPhone", 0)); arrayList.add(new Item("iPad", 1)); arrayList.add(new Item("iPod", 2)); arrayList.add(new Item("iMac", 3)); sectionedExpandableLayoutHelper.addSection("Apple Products", arrayList);
作者对数据层进行了一定封装,使得setAdapter()的操作,并不在我们的业务层出现。
而是在控件初始化时进行了设置(不过这时候数据集合是空的)
public SectionedExpandableLayoutHelper(Context context, RecyclerView recyclerView, ItemClickListener itemClickListener, int gridSpanCount) { //setting the recycler view GridLayoutManager gridLayoutManager = new GridLayoutManager(context, gridSpanCount); recyclerView.setLayoutManager(gridLayoutManager); mSectionedExpandableGridAdapter = new SectionedExpandableGridAdapter(context, mDataArrayList, gridLayoutManager, itemClickListener, this); recyclerView.setAdapter(mSectionedExpandableGridAdapter); }
然后在notifyDataSetChanged()
时进行数据的刷新(无论是主动还是被动都是在这操作)
反正你如果数据发横了变化 记得刷一刷 notifyDataSetChanged()
栏目的监听走这
@Override public void itemClicked(Item item) { Toast.makeText(this, "Item: " + item.getName() + " clicked", Toast.LENGTH_SHORT).show(); }
每一个Item的监听走这
@Override public void itemClicked(Section section) { Toast.makeText(this, "Section: " + section.getName() + " clicked", Toast.LENGTH_SHORT).show(); }
这两个事件的set方法都省去了,因为构造函数里已经做了这事,当然如果你不需要,那么久空着吧。
源码地址:https://github.com/ddwhan0123/SectionedExpandableGridRecyclerView/archive/master.zip
作者git:https://github.com/bpncool/SectionedExpandableGridRecyclerView
- 翻翻git之---利用RecyclerView实现折叠效果 SectionedExpandableGridRecyclerView
- 翻翻git之---自定义View实现水位上涨效果 WaveProgressView
- Github学习之RecyclerView实现View滑动折叠效果
- 翻翻git之---溜的飞起的加载效果AVLoadingIndicatorView
- 翻翻git之---"有趣效果"的自定义View EasyArcLoading
- 翻翻git之---实现下拉到底刷新RecycleView InfiniteScroll
- 利用RecyclerView实现瀑布流效果
- 翻翻git之---实现QQ空间点赞部分实现的自定义控件 EasyLikeArea
- 翻翻git之---自定义邮件发送按钮SendButton(流程分析,实现思路可以学习下)
- 翻翻git之---基于universalimageloader实现的图片加载控件BlurImageView
- 翻翻git之---实现Material Bottom Navigation的自定义控件 LuseenBottomNavigation
- jQuery实现折叠效果
- 折叠效果实现
- 给RecyclerView加上折叠的效果
- 翻翻git之---效果鲜明的类ViewPager库 ConvenientBanner(对图片加载部分进行修改)
- RecyclerView之CheckBox实现单选效果
- bootstrap-collapse.js 之无法实现折叠效果
- Material Design之利用CollapsingToolbarLayout轻松实现知乎日报新闻详情页顶部效果(带banner的toolbar伸缩折叠效果)
- iOS自定义返回按钮左滑返回失效问题
- H2内存数据库
- Android中Parcel的分析以及使用
- js数组依据下标删除元素
- C++界面库
- 翻翻git之---利用RecyclerView实现折叠效果 SectionedExpandableGridRecyclerView
- [面试相关]
- 导出记录
- 《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射
- iOS开发Debug之Xcode证书问题报错
- Ios设定地图不规则范围及火星坐标转百度坐标
- 【技术架构】分布式系统的特点以及设计理念
- grid++使用技巧
- 更改浏览器palceholder属性