首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简单好用RecyclerView适配器

前言 给大家推荐个好用RecyclerView适配器,也就是在百篮应用里用到适配器。为了大家学习方便,这里简单写下如何使用这个适配器,不做代码具体分析,有兴趣可以自己看下源码。...然后单条目适配器要继承CommonAdapter泛型传入数据类型,我们加入数据是String所以泛型为String,上面我们给所有item加入监听,当然也可以给每个item任意控件添加监听,如下...这次我们没有传入item布局,而是在MultiItemTypeAdapter中有创建2个实现ItemViewDelegate适配器,因为从效果图上也可以看出,是2不用效果所以两种效果各自用各自适配器然后在...这里我们用了2不同效果,当然也可以更多。 分组适配器 同样先来看下效果: ? asd.gif 这个效果有点像我们手机通讯录。...---- 结语 这个适配器称之为万能适配器我觉得都不为过。不管你是多复杂布局只要用到RecyclerView,全部都能实现。用法基本上都讲到了,也全都覆盖了。里面没有讲到大家可以再继续研究。

97030
您找到你想要的搜索结果了吗?
是的
没有找到

ViewPagerFragment状态保存哪些事

引言 在使用 ViewPager 时 , 如果我们适配器使用是 FragmentStatePagerAdapter ,那么当我们重新滑到之前已销毁页面时,一般情况下页面的状态依然将保持不变(比如...RecyclerView 滚动位置等,EditText 输入内容 等), 或者说 View 历史状态被还原了。...举个 如下段代码所示,我们有这样一个适配器 [MainAdapter]: class MainAdapter(fragmentManager: FragmentManager, private val...但当我们重新切换到 1 时,可以发现,Fragment1 RecyclerView 滚动位置 没有变化,所以可以证明 Fragment 状态的确是被还原了。 那这是怎么做呢?...destroyItem() 此方法用于销毁我们指定Fragment,其内部把当前Fragment状态根据下标保存到了 mSavedState

1.3K20

RecyclerView | 处理 RecyclerView 点击事件

本文是介绍 RecyclerView 入门 系列文章 第三篇。如果您已经对创建 RecyclerView 有了一定认识,请继续阅读本文。如果尚未熟悉,建议您首先阅读本系列 第一篇文章。...相关响应事件虽然数不胜数,但是它们均需要通过 onClick() 来实现。 定义点击动作 在创建监听器之前,在 Activity 类添加一个函数用于处理点击之后响应操作。 (FlowerDiffCallback()) 在 Activity 类,在初始化 Adapter 时候传入刚刚创建点击事件函数。...(itemView) 在初始化代码,调用 itemView setOnClickListener{}。...现在您 RecyclerView 可以响应点击事件了。 编程快乐! 下一步 请查阅包含 onClick() 完整示例。 感谢您阅读 RecyclerView 系列 文章第三篇。

2.1K10

可展开Recyclerview适配器支持Header、Footer、Empty、LoadMore

前言 Android RecyclerView适配器。面对各种列表需求,急需要梳理一下,抽象出一个快速开发列表适配器,减小代码量,提高开发效率。...可展开Adapter支持功能如下: 支持两行可展开能力(单一类型适配) 支持空状态; 支持Header、Footer适配 LoadMore适配 使用类:BaseExpandableRecyclerViewAdapter...对应onCreateGroupViewHolder和onCreateChildViewHolder、onBindGroupViewHolder和onBindChildViewHolder public...基本原理 基本继承RecyclerView.Adapter复写类中封装了一些常用到写法,抽象出来 (1)在getItemViewType中分别对ViewType做区分:VIEW_TYPE_EMPTY...onBindChildViewHolder (4)抽象出BaseGroupBean,包含getChildCount、getChildAt、isExpandable方法 (5)在onCreateViewHolder根据

72310

RecyclerView】 一、RecyclerView 最基本用法 ( 添加支持库 | 设置布局文件 | 自定义适配器 )

文章目录 一、添加支持库 二、布局文件中使用 RecyclerView 三、自定义适配器 四、RecyclerView 设置流程 五、RecyclerView 完整 Java 代码示例 一、添加支持库...---- 在 Module build.gradle dependencies 配置 RecyclerView 依赖库 ; dependencies { implementation...设置流程 RecyclerView 设置流程 : ① 初始化 RecyclerView 对象 : 一般是从布局文件获取 ; ② 创建并设置布局管理器 : 可以使用预置布局管理器 , 也可以自定义布局管理器...; ③ 设置适配器 : 一般是使用自定义适配器 , 设置给 RecyclerView 对象 ; //1 ....从布局获取 RecyclerView RecyclerView recycler_view = findViewById(R.id.recycler_view); //2 .

1.1K10

RecyclerView】二、RecyclerView 简介 ( RecyclerView 特点 | RecyclerView 涉及到类 )

--- RecyclerView 是 Google 官方提供任何 基于适配器显示视图 , 可以实现普通列表 ( ListView ) , 网格列表 ( GridView ) , 瀑布流 , 以及各种自定义形式多容器布局...; RecyclerView 样式与适配器等解耦 : RecyclerView 提供了插拔式体验 , 实现 Adapter 适配器与显示样式设置 高度解耦 , 在不改变 Adapter 适配器前提下...避免了 ListView 自定义 ViewHolder , 给出了相应 规范 ; 三、RecyclerView 涉及到类 ---- RecyclerView 使用必须有的关键类 : RecyclerView.ViewHolder..., RecyclerView.Adapter , LayoutManager ; RecyclerView.ViewHolder 用于 定义 RecyclerView 每个独立元素显示组件 ,...创建时不关联数据 , 创建后会在 RecyclerView.Adapter 适配器 onBindViewHolder 方法为其关联数据 ; RecyclerView.Adapter 主要作用是

4.9K00

偷懒新姿势,打造属于RecyclerView万能适配器Adapter和ViewHolder

前言 昨天开始接触江湖口碑很好RecyclerView,事实上,我已经被她强大所征服了!资源回收,数据绑定,布局显示,分割线,Item动画多个模块高度解耦,灵活优雅。...其实,RecyclerView在使用上已经是相当简单了(个人觉得),但仍有很多代码是可以加以封装。...今天受简书上一篇博文启发,作为写代码喜欢优(tou)雅(lan)的人,想到了一种封装方式,打造万能适配器,供大家食用。...因此我们发现,这个adapter核心代码在与onBindViewHolder(),作用是将数据跟视图(ViewHolder)绑定,可以给子类提供一个bindData()抽象方法。...添加点击事件监听也可以封装到万能adapter,子类就不用再写item点击事件处理代码了 封装后Adapter public abstract class BaseRecyclerAdapter<

1.3K60

使用优化 | RecyclerView可优化

在刷新时候调用对应刷新 api 即可看到动画 强制实现 ViewHolder RecyclerView 源码是非常解耦,且性能非常好 2,RecyclerView 重要组件 RecyclerView...重要工作都会交给下面的三个组件来完成 LayoutManager:负责布局和摆放 item ItemAnimator:负责动画 Adapter:适配器模式,对数据进行适配,把数据列表转化成 RecyclerView...5,RecyclerView 缓存机制 RecyclerView 缓存其实是 ViewHolder。...6,RecyclerView item 广告统计 在 ListView 通过 getView() 方法进行统计是没有问题。每次滑动时候都会调用 getView() 方法。...多个 RecyclerView 共用 RecycledViewPoll 注意这个 RecycledViewPool 不是 四级缓存 RecyclerViewPool RecyclerView 会默认给自己创建一个

1.4K20

羊皮书APP(Android版)开发系列(十八)Android 侧滑菜单栏实现

前几篇文章介绍底部菜单栏、图片循环自动轮播都非常常用,底部菜单栏也很常用,底部菜单栏是iOS主要风格,而Android风格则偏向侧滑菜单栏。...侧滑菜单栏也是很常用,本篇为大家介绍下一个侧滑菜单栏,个人感觉很不错,这里只贴出关键代码,学习下。 效果如下: ? fd.jpg 首先定义一个Fragment,用来展示侧滑菜单,添加一些事件。...= null) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction...set the toolbar title getSupportActionBar().setTitle(title); } } } Activity代码也很简单...,这个侧滑菜单主要核心就在于FragmentDrawer和NavigationDrawerAdapter,大家可以认真的看下代码逻辑。

80310

使用优化 | RecyclerView可优化

在刷新时候调用对应刷新 api 即可看到动画 强制实现 ViewHolder RecyclerView 源码是非常解耦,且性能非常好 2,RecyclerView 重要组件 RecyclerView...重要工作都会交给下面的三个组件来完成 LayoutManager:负责布局和摆放 item ItemAnimator:负责动画 Adapter:适配器模式,对数据进行适配,把数据列表转化成 RecyclerView...5,RecyclerView 缓存机制 RecyclerView 缓存其实是 ViewHolder。...6,RecyclerView item 广告统计 在 ListView 通过 getView() 方法进行统计是没有问题。每次滑动时候都会调用 getView() 方法。...多个 RecyclerView 共用 RecycledViewPoll 注意这个 RecycledViewPool 不是 四级缓存 RecyclerViewPool RecyclerView

1.4K30

EditText在RecyclerView解决方案

有时候,一个列表Item会有EditText出现,而由于View复用机制,如果不好好处理EditText,将会出现一些问题。...其实有些问题出现,还是由于没有理解RecyclerView复用机制和EditText,主要原因还是菜,哈哈。...菜是原罪 EditText在RecyclerView问题 例子是这样,每个Item包含一个title、一张图片以及一个评分,这个评分就是通过输入框来输入。...先看下效果如下: 这里,每张图片输入图片title对应分数,可以看到,由于未绑定数据和RecyclerView复用机制存在,在一些图片中还没输入分数,就已经出现分数了。...首先我是试了一个,removeTextWatcher方法,那就是在AdapterdetachViewHolderFromWindow方法移除TextWatcher,如下: class PicAdapter

2.6K20

android适配器作用,适配器模式 在Android简单理解「建议收藏」

Android 在Android上提到适配器模式就会想到最常用ListView和BaseAdapter 在这个功能使用,类似于适配器模式对象适配器 例如在ListView想用一个getView...Java 适配器模式有两种: 类适配器 对象适配器 场景: 假如A类想用M方法,X类有M方法,但是M方法结果不一定完全符合A类需求 那么X类就是写死了,不好用,这样设计不好 那就把X类换成一个接口...A类继承B类,并实现I接口M方法 最后在A类M方法以super方式调用B类specialM方法 对象适配器:(更多是用对象适配器) 设计一个接口I,让他也有M方法 然后设计一个B类,写好符合A...类需求specialM方法 然后在A类声明一个B类变量,并且A类实现I接口,那么A类也就有了M方法 最后在A类M方法,如果需要,就可以选择调用B类specialM方法 或者设计一个B类,实现I...接口M方法 然后在A类声明一个I类变量,再直接调用I接口M方法 在调用A类M方法之前,通过例如setAdapter(I Adapter)这样方法,将B类设置成A类成员变量 这样就保证了A类和

69920

适配器在JavaScript体现

适配器在JavaScript体现 适配器设计模式在JavaScript中非常有用,在处理跨浏览器兼容问题、整合多个第三方SDK调用,都可以看到它身影。...其实在日常开发,很多时候会不经意间写出符合某种设计模式代码,毕竟设计模式就是老前辈们总结提炼出来一些能够帮助提升开发效率一些模版,源于日常开发。...而适配器其实在JavaScript应该是比较常见一种了。 在维基百科,关于适配器模式定义为: 在软件工程适配器模式是一种软件设计模式,允许从另一个接口使用现有类接口。...生活例子 在生活中最常见就是电源插头适配器了,世界各国插座标准各不相同,如果需要根据各国标准购买对应电源插头那未免太过于浪费钱财,如果说自己带着插座,把人家墙敲碎,重新接线,也肯定是不现实...在代码体现 而转向到编程,我个人是这样理解: 将那些你不愿意看见脏代码藏起来,你就可以说这是一个适配器 接入多个第三方SDK 举个日常开发例子,我们在做一个微信公众号开发,里边用到了微信支付模块

1.4K10
领券