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

Android Material Design系列之RecyclerView和CardView

是复用RecyclerView,是把ViewHolder作为缓存单位了,然后convertView作为ViewHolder成员变量保持ViewHolder,也就是说,假设手机屏幕可显示10...注意是:RecyclerView不提供ListViewsetOnItemClickListener方法,我们可以ViewHolder添加类似的点击事件。...前面我们介绍RecyclerView,说过RecyclerView适合多种嵌套布局效果, ViewHolder更适合多种子布局列表。...所以我们看 RecyclerViewAdapter一个方法如下: public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType...第一步:添加布局状态标识,并增加一FooterView adapter声明布局状态标识,是普通布局还是foot布局 private static final int TYPE_NORMAL_ITEM

2K80

Android开发笔记(一百二十二)循环器视图RecyclerView

调用RecyclerViewsetAdapter方法前,我们要先实现一个从RecyclerView.Adapter派生而来数据适配器,用来定义列表项布局与具体操作。...onCreateViewHolder : 创建整个布局视图持有者。输入参数包括视图类型,可根据视图类型加载不同布局,从而实现带头部列表布局。...下面是可以直接调用方法: notifyItemInserted : 通知适配器指定位置插入了新。 notifyItemRemoved : 通知适配器指定位置删除了原有。...,开发者可自定义头部类型与一般类型, //然后onCreateViewHolder方法根据类型加载不同布局,从而实现带头部网格布局 return 0; } @Override...方法,界面就会根据新布局刷新列表项,这个特性特别适合于手机竖屏/横屏之间显示切换(如竖屏展示ListView,横屏展示GridView),也适合在不同屏幕分辨率如手机/平板之间显示切换(如手机上展示

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

RecyclerView优化实战指南

它可以自动回收不可见视图,并且可以使用不同布局管理器来实现不同布局RecyclerView 还提供了一些回调函数,允许你视图复用时进行一些自定义操作。...使用 ViewHolder,可以 Adapter 重写 onCreateViewHolder 方法创建 ViewHolder,并在 onBindViewHolder 方法获取 ViewHolder...我们可以 adapter_layout.xml 中使用 标签,将数据绑定到视图布局文件,从而减少代码量。...设置 Recyclerview 固定大小 Recyclerview 布局,设置 android:layout_height 和 android:layout_width 值为具体数值,可以避免列表项宽高随着内容变化而变化...如果这种行为不是必需,可以 Adapter 重写 onItemRangeChanged 方法,并在其中禁止滑动。

44320

Kotlin入门(23)适配器进阶表达

前面介绍列表视图和网格视图,它们适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项屏幕上看不到了,则系统会自动回收相应视图对象。...为方便理解循环适配器Kotlin编码,下面以微信公众号消息列表为例,给出对应消息列表Kotlin代码: //ViewHolder构造初始化布局控件对象 class RecyclerLinearAdapter...onItemLongClick(v, position)             true         }     }     //ItemHolder属性构造初始化     inner...注意到适配器代码仍然通过findViewById方法获得控件对象,可是号称Anko库支持之下,Kotlin早就无需该方法就能直接访问控件对象了呀,为啥这里依旧靠老牛拉破车呢?...这下不管是Activity代码,还是适配器代码,均可将控件名称拿来直接调用了。

1.8K41

RecycleView从0到0.1 | 技术创作特训营第一期

说白了就是ui列表,可以很灵活控制列表每一数据,布局,动画。三、RecycleView优点 1、支持局部刷新。 2、可以自定义item增删动画。...可以看到该适配器类主要有3个方法和1个自定义ViewHolder组成:onCreateViewHolder: 创建ViewHolder并返回,后续item布局里控件都是从ViewHolder取出。...MyHolder : 这是RecyclerView.ViewHolder实现类,用于初始化item布局子控件。需要注意是,在这个类构造方法需要传递item布局View给父类 。...我们可以RecyclerViewAdapter自定义一个接口,并创建一个供其他类设置监听方法。...当我们定义好接口后,我们onBindViewHolder()方法为holder.itemView(itemView是列表每一个item)设置了点击事件监听,然后onClick()判断是否有用户传递过

38311

一篇博客理解Recyclerview使用

,然而在日常开发,响应点击事件无疑都是必须,虽然它没有提供,但是我们可以手动添加OnItemClickListener,我们可以Adapter添加这个回调接口: 例子2:可以点击RecyclerView...逻辑之中,对RecyclerView每一个itemView设置点击事件: @Override // 填充onCreateViewHolder方法返回holder控件 public void...实现滚动内容联动 例子3:RecyclerView制作相册效果 效果:原工程基础上进行修改,改成相册效果,即上面显示一张大图,下面的RecyclerView做为图片切换指示器。...,就是我们适配器绑定ViewHolder方法需要重新给我们itemView布局设置height,这里是生成随机数来设置高度。...方法: @Override // 填充onCreateViewHolder方法返回holder控件 public void onBindViewHolder(final MyHolder holder

61730

Android开发之漫漫长途 XV——RecyclerView

小结 RecyclerView添加分割线需要操作已经在上文中比较详细说明了,这里再总结一下。...关于实现方法也有很多种。目前网上能搜到主流解决办法是Adapter重写getItemViewType方法为头部或者底部布局生成特定item。从而实现头部布局以及底部布局。...方法(该方法Adapter与RecyclerView相关联回调),如下: @Override public void onAttachedToRecyclerView(RecyclerView recyclerView...重写onViewAttachedToWindow方法(该方法Adapter与RecyclerView相关联回调),如下: @Override public void onViewAttachedToWindow...RecyclerView缓存策略最重要方法,该方法是从RecyclerView回收机制实现类Recycler获取合适View,或者新创建一个View View getViewForPosition

2.2K20

RecyclerView使用详解(代替ListView)

添加分割线使用了系统提供类; 个人感觉完全没必要,甚至感觉多次一举,个人感觉完全可以给RecyclerView和item设置背景实现分割线或者item布局添加view布局实现; 首先了解下RecyclerView...方法,返回一个自定义ViewHolder(当RecyclerView需要一个ViewHolder时会回调该方法,如果有可复用View不会回调) public MyViewHolder onCreateViewHolder...方法返回holder控件(当一个View需要出现在屏幕上,该方法会被回调,我们需要再该方法根据数据来更改视图) public void onBindViewHolder(final MyViewHolder...adpater其实只需要实现三个方法,但是我这个adapter却多出来几个方法RecyclerView本身是没有条目点击事件,所以多出来几个方法是变相RecyclerView设置设置条目点击事件...; RecyclerView默认是没办法添加头布局和脚布局,上面横向没有使用这一块,但是纵向真实项目中就极有可能使用到这个功能点了,在网上看了好多大神们写添加头布局和脚布局方法,感觉真的是大神

1.3K20

实战 | 认识 RecyclerView

实现过程,我也会将 RecyclerView 每个部分揉碎了展现给大家,这样大家就可以自己应用实现了。 RecyclerView 是 "何方神圣"?为什么选择它呢?...当视图滑出屏幕RecyclerView 会复用它并且填充新数据。由于它是通过回收已有的结构而不是持续创建新列表项,所以它可以有效提高应用时间效率和空间效率。... ViewHolder ,创建一个变量来引用 TextView,然后将它指向表项布局里对应视图。...() { } 重写 RecyclerView.Adapter 类需要重写三个方法 onCreateViewHolder()、onBindViewHolder...重写 onCreateViewHolder() 当 ViewHolder 创建时候会调用该方法方法里进行初始化和填充 RecyclerView 表项视图。

1.1K30

RecyclerView】 九、为 RecyclerView 设置不同布局样式

文章目录 一、为 RecyclerView 设置不同布局样式 二、完整代码 三、RecyclerView 相关资料 一、为 RecyclerView 设置不同布局样式 ---- 为 RecyclerView...( ) 方法 : 这里为不同位置组件设置不同布局类型 ; @Override public int getItemViewType(int position) {...} ③ 根据布局类型加载不同布局文件 : onCreateViewHolder( ) 方法 , 根据当前 int viewType 参数 , 加载不同布局文件 ; @Override...: onBindViewHolder( ) 方法布局组件绑定数据 , 可以调用 getItemViewType 方法 , 获取当前布局类型 , 然后根据该布局类型 , 将 ViewHolder...onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { // 根据不同组件类型加载不同类型布局文件

73100

项目需求讨论-Vlayout来快速构建及扩展复杂界面

我们可以看到,vlayout是一个强大RecycleViewLayoutManager,它可以帮我RecycleView呈现多种布局方式。...我们getItemViewType方法中肯定position值,返回不同type,这样等会在onCreateViewHolder方法中就可以返回不同ViewHolder了。 3....我们前面已经每个AdapterDataObserver存了相对于Adapter起始Position,我们只需要不停判断现在传给这个方法position是(子Adapter 起始position..., p.second);,这样当前这个就存在了key为0集合中了,然后我们onCreateViewHolder方法通过Adapter adapter = mItemTypeAry.get...值),因为每个index值不同,所以生成ViewType也不同,然后我们onCreateViewHolder方法里面,用还原B方法,获取到index值,然后通过这个index

1.2K20

RecyclerView实现混合布局

表示当前是第几个Item,然后我们可以通过position拿到当前Item对象,然后判断这个item对象需要那种视图,返回一个int类型视图标志,然后onCreatViewHolder方法给引入布局...,还要存放在多个list里面,下次下拉刷新还要在多个list累加数据,这样就有点麻烦了 不挑出来直接就只判断type,然后根据type去调用不同layout,然后绑定数据方法再次判断是不是自己想要...mList.get(position).getType(); } 我们重写了getItemViewType()方法后,就要写不同item(布局文件),然后onCreatViewHolder方法引入布局...,方法写。...activity中加载recyclerview,要加入布局样式,比如说,普通LinearLayoutManager,或者GridLayoutManager,StaggeredGridLayoutManager

2.2K20

Android XRecyclerView最简单item点击事件处理

现在很多人都是用RecyclerView,很简单用法,布局多样化,主要是有瀑布流。这才知道RecyclerView.LayoutManager真正强大。...但是说要addHeaderView这个的话,RecyclerView没有实现,所以我用了XRecyclerView,其实它也是RecyclerView基础上再次封装,用起来还是蛮好。...一般我们会直接在item布局最外层设置一个id=”@+id/…”,然后onBindViewHolder中用holder.**.setOnClickListener()进行事件处理,你看看你是不是这样做...构造方法也用到了super(view)。...(parent, viewType); } } 当我们每次addHeaderView他都会进行notifyDataSetChanged,而且onCreateViewHolder也有了对应isHeaderType

76210

Android ListView与RecycleView对比使用解析

1是安卓系统给一个item布局,最后一是String数组,也就是数据,之后寻找ListView实例,调用setAdapter方法设置适配器 public class MainActivity...使用步骤: 1.布局文件中使用RecyclerView,定义id,宽高与空间相同 2.准备RecyclerView子项item布局,之后要在适配器类中使用,这里就不在赘述 3.定义个泛型类,如之前...,开头我们就声明了一个List成员变量students,之后,添加构造方法,传入一个LIst,将其赋值给RecycleAdapter成员变量students 之后需要复写三个方法OnCreateViewHolder...onCreateViewHolder方法里面,首先就是通过LayoutInflater.from()方法接收一个context,之后,再通过inflate将item布局放进总布局,之后再将这个view...7.设置onClick方法,RecycleView里没有onClick方法,需要我们自己写,在哪里写呢?RecycleAdapteronBindViewHolder方法 ?

1.7K10

Android仿淘宝切换商品列表布局效果示例代码

提出这个需求,问了朋友,他说使用了两个Adapter、两个布局实现了这个效果。当时听了,我内心是崩溃。这样设计方案实际App开发是绝对不行。如果单纯为 了实现这个功能,那么可以理解。...RecyclerViewsetLayoutanager()方法可以让其布局不同排列方式间进行切换,常见:从线性布局到网格布局、瀑布流。...我们需要重写该方法来实现不同布局方式。重写该方法,返回值为Int型。...利用该方法返回值,我们就可以onCreateViewHolder方法中去根据该返回值加载不用布局了,然后onBindViewHolder方法同样根据不同type去绑定对应布局对应控件。...基本实现流程,到这里就介绍完了,下面是具体实现 第一步:adapter重写getItemViewType()方法;添加setType(int type)方法 /** * 点击切换布局时候调用这个方法设置

1.7K31

Android RecyclerView使用简述

代码就有一些臃肿了,我们最好不要这样做,所以我们需要将刚才所添加事件抽离到一个方法里面,这个方法专门用来处理view事件,StringAdapter中新增一个handlerEvents方法,代码如下...; } });   这一段代码就比较多了,说明一下,先看onScrolled回调方法,这是表示RecyclerView滚动回调,onScrolled()方法...六、RecyclerView布局使用   在前面的使用我们操作写适配器代码,都是一个item布局,而有时候数据不同需要显示布局也不同,就存在多布局情况,这种情况应该怎么处理呢?...View.GONE : View.VISIBLE); });   创建分组item布局时候我设置RecyclerView为隐藏点击group所在LinearLayout布局...我增加了一个show变量,用来控制适配器Item选中框是否显示,提供了show变量get和set方法set方法赋值之后调用notifyDataSetChanged()方法对适配器进行刷新,这个方法会触发

2.3K21
领券