翻翻git之---利用RecyclerView实现折叠效果 SectionedExpandableGridRecyclerView

转载请注明出处:王亟亟的大牛之路

今天也没有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

时间: 2025-01-07 14:24:14

翻翻git之---利用RecyclerView实现折叠效果 SectionedExpandableGridRecyclerView的相关文章

android给RecyclerView加上折叠的效果示例

RecyclerView有很高的自由度,可以说只有想不到没有做不到,真是越用越喜欢.这次用超简单的方法,让RecyclerView带上折叠的效果. 效果是这样的. 总结一下这个列表的特点,就是以下三点: 1. 重叠效果: 2. 层次感: 3. 首项的差动效果. 下面我们来一个个解决. 我们新建一个ParallaxRecyclerView,让它继承RecyclerView,并使用LinearLayoutManager作为布局管理器. 重叠效果 其实就是每一项都搭一部分在它前面那项而已.我们知道,R

Android RecyclerView打造悬浮效果的实现代码

本文介绍了Android RecyclerView悬浮效果,分享给大家,具体如下: 先看个效果 这是一个City列表,每个City都有所属的Province,需要在滑动的时候,将对应的Province悬浮在顶部.悬浮顶部的Province需要根据列表的滑动而适当改变位置,实现"顶上去"的效果. 实现思路: 利用RecyclerView.ItemDecoration绘制Province(就像绘制分割线一样) 同一组的City,只绘制一个Province 计算偏移,将当前Province固

Google 相册风格的RecyclerView多选效果: drag-select-recyclerview

Google 相册风格的RecyclerView多选效果,手指滑动所到之处都被选中.不过与谷歌相册的差距是一次只能选择一屏的item. Gradle依赖   build.gradle 文件:  repositories { // ... maven { url "https://jitpack.io" } } dependencies { // ... compile('com.afollestad:drag-select-recyclerview:0.1.0@aar') { tran

利用三角函数实现精彩效果

函数 一.前言 运用三角函数完成FLASH效果早已有高手做过,而教程方面呢,看到zjs35大哥的椭圆方程后,我决定还是写点儿什么,因为三角函数实在是在FLASH效果中有神奇的作用,短短几行代码就能完成许多炫的效果. 本文将浅析一下如何运用三角函数,最后给出两个效果.其中一个我曾经在一个"20行代码大赛"中看到过,不过没有见过源文件.我给出的这个可以说是原创的. 二.函数解析 三角函数我们在初中就学过,特别是sin,cos,可以说是最常见的周期函数. 我们所用三角函数作效果,主要也就是这

android-怎样利用popupwindow 实现如下效果呢?

问题描述 怎样利用popupwindow 实现如下效果呢? 解决方案 这就是简单的效果呀. 1.箭头用图片 2.背景可以用9patch延伸 3.动态增加菜单,添加分割线就行了. 解决方案二: 很简单,利用popwindow的showAsdropdown方法,里面的 view用listview即可 解决方案三: 设置popupwindow锚点为你要显示的相对位置的控件setanchor 解决方案四: 这个就是基本的popupwindow的使用. http://www.cnblogs.com/men

android-在安卓中创建出折叠效果的textview

问题描述 在安卓中创建出折叠效果的textview 我要把textView弄成像上面图一样的效果,我有9个图片 但是不知道怎么样把这种PNG图片转换为textView的折叠背景.希望大家帮忙,一起解决一下. 解决方案 解决方法如下: <TextViewandroid:id=""@+id/yourTextViewWidget""android:layout_width=""wrap_content""android:lay

ios-iOS的UITableViewCell如何实现Android5.0任务管理器的折叠效果?

问题描述 iOS的UITableViewCell如何实现Android5.0任务管理器的折叠效果? 安卓5.0任务管理器的折叠效果,iOS的UITableView能否实现,求教各位大神,谢谢了! 解决方案 给个效果图呗,做IOS的 谁用Android啊 ... 解决方案二: 类似于QQ那种折叠?

jquery 同一页面可多次调用折叠效果代码

jquery 同一页面可多次调用折叠效果代码 点击jq版区块的标题, 会有一个js错误, 那是因为获取js版下的h2时, 我偷了个懒, 把jq的也遍历进去了. 我想, 实际应用中, 也不会有人同一个效果, 一边用js一边用jq吧 //原生js版本 ***** start window.onload=function(){  //共用函数区  var ibase={   //document.getelementbyid   id: function(name){return document.g

jQuery内容折叠效果插件用法实例分析(附demo源码)_jquery

本文实例讲述了jQuery内容折叠效果插件用法.分享给大家供大家参考,具体如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>jQuery Collapsible Fieldset</title> <script src=&